Leer y escribir en base de datos usando AppInventor - ferestradaa/RetoIOT GitHub Wiki

Creación de la interfaz

Para realizar lecturas y escrturas en Firebase, es necesario crear un nuevo proyecto y realizar la interfaz de la aplicación. Para leer, deberá contener la información correspondiente acerca de los sensores, utilizando etiquetas (labels) para nombrar los diferentes sensores y otra en donde deberá ir la información obtenida después de la lectura.

Para poder escribir es necesario poner una caja de texto (TextBox) y un botón, que será el responsable de enviar la información ingresada.

Conectar a Firebase

Además, se necesita conectar la Firebase a la app, por lo que, es necesario arrastrar la opción de Firebase y en sus configuraciones, ingresar la API Key y la URL de la Firebase a la que se conectará. De igual manera, hay que ingresar en el ProjectBucket el nombre de la carpeta donde se guardarán las lecturas y escrituras.

Programación de los Blocks

Teniendo la interfaz completa y la Firebase conectada, pasamos al apartado Blocks, en donde se hace funcional la aplicación. Dentro de Blocks, para leer información es necesario ingresar el siguiente bloque:

Debajo del bloque, con una serie de if's, se busca dentro de la Firebase un atributo que tenga exactamente el mismo nombre que le asignamos a la parte de tag. Debajo, con un set, elegimos el nombre de la etiqueta en donde se desplegará la información y se obtiene su valor.

En nuestro proyecto realizamos 7 lecturas obtenidas de 4 sensores.

Para escribir, se utiliza el siguiente bloque:

En donde, en el apartado del When, se selecciona el botón de enviar implementado en la interfaz. Debajo se escribe el nombre con el que se verá en la Firebase y finalmente se selecciona la caja de texto correspondiente.

Resultado

Finalmente, así se ve la aplicación vista desde un celular y completamente funcional:

La lectura se realiza directamente a la base de datos y se muestran los valores de todos los sensores en el modelo. La escritura se hace modificando o creando directamente la variable "numero" y "usuario" en la base de datos, ingresado manualmente por el usuario.