Leer y escribir en base de datos de firebase con Pyhton - ferestradaa/RetoIOT GitHub Wiki

Librería

Inicialmente, es necesario instalar la librería pyrebase mediante la terminal:

Código

Es necesario, en el código, importar la librería pyrebase que se conectará a la base de datos y ingresar la información de la base de datos donde se mandará la información.

import pyrebase

config = {
    "apiKey": "AIzaSyDQOJHIMB9CDaP8ULcW3Xvv2oCR_hFq7p8",
    "authDomain": "proyecto1-4fb45.firebaseapp.com",
    "projectId": "proyecto1-4fb45",
    "storageBucket": "proyecto1-4fb45.appspot.com",
    "messagingSenderId": "934029055643",
    "appId": "1:934029055643:web:54f813216b92f9ba87983e",
    "measurementId": "G-9BBL25KP3Q",
    "databaseURL": "https://proyecto1-4fb45-default-rtdb.firebaseio.com/",
}

Acto seguido, se accede a la base de datos mandándole los datos de configuración.

firebase = pyrebase.initialize_app(config)
db = firebase.database()

Se declara que se quiere acceder a los elementos de un hijo de la base de datos y mediante un for que recorre los elementos, encuentra la llave "numero" y comprueba si es mayor a 9, en cuyo caso cambiará al valor de la llave "usuario", por medio de la función update(), a Elemento mayor a 9.

all_sensors=db.child("test").get()
for sensor in all_sensors.each():
    if(sensor.key() == "numero"):
        if(int(sensor.val())>9):
            db.child("test").update({"usuario":"Elemento mayor a 9"})

Finalmente, se accede nuevamente a los elementos del hijo, pero esta vez con el valor de la llave "usuario" actualizado según sea el caso.

all_updated = db.child("test").get()
for sensor in all_updated.each():
    print(sensor.key() + ":", sensor.val())

Resultado

El programa lee y muestra los datos almacenados en la base en línea. Si el número "numero" en la base de datos es mayor a nueve (>9) el programa escribe en la base de datos cambiando a "usuario" por "elemento mayor a 9."