Está en la página 1de 13

Actividad 1.

ASIGNATURA: Programación Android


ALUMNO: Javiera Rivera
PROFESOR: Claudio Andrés Abbot
1- Creación de cuenta Firebase , además un proyecto FoodFinder

2- Dentro del proyecto se crean instancias para los servicios de autenticación y base de datos.
3- Mediante la herramienta de ayuda de Android Studio se vincula Firebase con el proyecto
que se creo en la cuenta de Firebase .

4- Los servicios que se agregaron al proyecto de Firebase

5- Al seleccionar un servicio se instalarán automáticamente sus dependencias , por ejemplo,


con el servicio de autenticación de usuarios:
IMPLEMENTACION DE FIREBASE DATABASE
Documentación utilizada : https://firebase.google.com/docs/database/android/read-and-write?
utm_source=studio&hl=es-419#java_4

En este caso se esta creando una tabla (llamada colección en firebase), correspondiente a reviews ,
dentro de reviews, existen registros que son reviews individuales , las cuales tienen una
descripción y calificación, el nombre “review” del ejemplo, será un id que genera Firebase

Dentro del proyecto, creé un paquete llamado “campos”, que contendrá cada una de la
estructuras de las tablas de firebase, por ejemplo, en la tabla reviews, dentro de este paquete
habrá una clase review, que contendrá todos los campos de review, que son puntuación y
descripción. Esto lo hice de esta manera ya que según la documentación de firebase, facilita la
creación y recuperación de registros.

Creación de la clase que se usara para crear y recuperar datos de la tabla reviews
Creación de un paquete conexión, que tendrá todas las conexiones a tablas especificas de la base
de datos, en este caso esta conexión será única y exclusivamente para reviews, mas adelante, se
agregaran conexiones para las demás tablas. Esto se hace para reciclar esta lógica a lo largo de
todas las views que requieran una tabla especifica.
Con el constructor y el objeto mDatabase se inicializa la base de datos a nivel general .

Con el método getTablaReviews() de la clase se obtiene en especifico la tabla reviews, de esta


forma se podrá reciclar código. El mismo proceso se repetirá con tablas futuras

Creo un método dentro de Reviews que permita ingresar un registro, en este caso, selecciono la
tabla reviews de la base de datos y creo un “hijo” nuevo que corresponderá a un registro
completo, esto lo consigo usando una id random generada que se pasa por parámetros
Creo el activity y los componentes visuales que permitirán ingresar un registro
En el activity creo un atributo que hace referencia a la base de datos, mediante la clase Reviews,
mencionada anteriormente

Una vez instanciada la referencia, se hace la funcionalidad para que el botón sea capaz de capturar,
validar los ingresos y posteriormente ingresarlos a la base de datos, mediante el método onClick
del botón

Rectángulo verde: Captura y valida los datos del formulario, si estos son validos, llama al método
ingresarValoracion(), de lo contrario avisa al usuario mediante un toast que los datos que ingreso
no son validos
Rectángulo rojo: Este método recibe 2 parámetros, una vista y un objeto Review (del paquete
campos mencionado anteriormente), la vista se utiliza para obtener el contexto y mostrar el toast
con el resultado de la operación, mientras que el objeto Review llamado “ingreso”, se usa para
generar el registro correspondiente en la base de datos, según lo especificado por firebase en su
documentación oficial.

El método ingresarValoracion(), genera un ID random que corresponderá al id del registro


ingresado, luego con el objeto bd de la clase Reviews, se crea la instancia para generar el registro,
pasandole el ID generado, y finalmente mediante el método setValue() pasandole el objeto Review,
se crea el registro. Todo esto en un entorno try catch para manejar errores.

Prueba de funcionamiento

Creo un nuevo campo el reviewsActivity para filtrar la consulta de acuerdo a una valoración
especifica de 1 a 5 en la base de datos
En la clase Reviews del paquete conexión, se agrega un nuevo método especifico para filtrar por
una valoración deseada, esto devuelve un objeto Query de firebase, que es la forma de hacer
consultas relativamente complejas

En reviewsActivity, creo un método para el onclick del botón, que validara los datos de filtrado y
llamara a el objeto bd , correspondiente a la clase Reviews del paquete conexión, de esta forma se
devolverán los datos filtrados

Este método solo se encarga de validar los datos correspondientes, y luego llama al método
encargado de ingresar el registro y comunicarse con la base de datos, que es el siguiente
Con este método obtenido de la documentación de firebase se itera sobre los datos obtenidos con
el filtro especificado, la vista, solo se entrega para obtener el contexto y mostrar el toast, el valor se
utiliza como parámetro de filtrado de la consulta, mientras que el textView resultados , es el
encargado de pintar todos estos datos.

Luego se agrego un scroll al elemento textView resultados, para mostrar múltiples coincidencias
sin que ocupe todo el layout, y además, se agregaron los elementos necesarios para borrar un
registro según el id obtenido.
En la clase Reviews del paquete conexión, ahora se genera un método para borrar un registro
según un ID especificado, al igual como se vino haciendo en pasos anteriores con agregar y filtrar

Similar al método crearRegistro, se busca un “hijo” especifico de la tabla reviews que contiene el id
especificado

Luego se crean los métodos para manejar la validación de datos y vincular las operaciones de la
base de datos a la vista

El método consulta (que viene desde Reviews del paquete conexion)

¿Cómo sería el método update?

Para actualizar un registro debería capturarse también el ID del usuario y colocar los campos
respectivos a actualizar, usaríamos el método updateChildren de Firebase especificado en su
documentación, o de todas formas, mediante el método setValue() que se uso para crear el
registro se podría actualizar, pero si usamos esta forma estaríamos sobreescribiendo todos los
datos del registro asique se debe usar con precaución.

También podría gustarte