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."