¿Cómo obtener datos de Firebase en Android?

Objetivos del blog.

Después de leer este blog, podremos obtener datos de Firebase Realtime Database. Estos datos pueden incluir tipos de datos simples, como cadenas, o tipos de datos complejos, como objetos de Java.

Pre-requisitos

Necesitamos tener un proyecto de Android Studio y Firebase listos para usar la base de datos en tiempo real de Firebase. Cree un nuevo proyecto de Android Studio (o use cualquier proyecto existente). Este proyecto de Android Studio se utilizará para trabajar con la base de datos en tiempo real. Siga los pasos que se indican a continuación para crear el proyecto Firebase:

1. Visite https://console.firebase.google.com

2. Haga clic en “Añadir proyecto.

3. Ingrese el nombre del proyecto y acepte las condiciones y haga clic en "Continuar.

Añadir proyecto

4. Luego agrega la aplicación de Android a tu proyecto. Requiere ingresar el nombre del paquete de la aplicación. Haga clic en Siguiente.

5. Descargue el archivo google-services.json y muévalo a la ubicación en el proyecto de Android en Android Studio como se especifica en la pantalla.

6. En el siguiente paso, habrá un pequeño tutorial para agregar líneas de código 3 en los archivos build.gradle a nivel de proyecto y nivel de aplicación. Añadirlos en consecuencia.

7. Luego termina este proceso de agregar la aplicación de Android al proyecto.

8. Luego haga clic en la opción "Base de datos" en el menú de la izquierda y haga clic en el botón "Crear base de datos".

crear base de datos?

9. La configuración de Firebase está completa. Ahora agregue la biblioteca de Firebase para usar la base de datos en tiempo real de Firebase en el archivo build.gradle a nivel de la aplicación. Esto se puede hacer agregando la siguiente línea:

implementación 'com.google.firebase: firebase-database: 16.0.6'

Implementación de Código

Antes de obtener las referencias, deberá comprender que se trata de una referencia de Firebase. Una referencia de Firebase apunta a una ubicación en la base de datos de Firebase donde se almacenan los datos. Incluso si crea varias referencias, todas comparten la misma conexión siempre que haya utilizado la misma ruta al crear la referencia desde la instancia de la base de datos. En primer lugar, necesitamos tener una instancia de la base de datos Firebase para poder usarla. La instancia puede ser creada por la siguiente línea de código.

privado FirebaseDatabase mDatabase = FirebaseDatabase.getInstance ();

Ahora es necesario crear referencias de las rutas donde se almacenan los datos en la base de datos. Como los datos en la base de datos Firebase se almacenan en el formato JSON, las claves del objeto JSON son las rutas especificadas en las referencias. La referencia al nodo raíz se puede crear mediante la siguiente línea de código:

Private DatabaseReference mGetReference = mDatabase.getReference ();

Después de obtener la referencia de la base de datos, se debe adjuntar un oyente asíncrono a la referencia de la base de datos, que escucha activamente cualquier cambio realizado en la base de datos. Este oyente devuelve una instantánea de datos de la base de datos inicialmente por primera vez cuando se adjunta. Luego, la instantánea de datos se devuelve cuando se realiza cualquier cambio en la ruta a la que apunta la referencia de la base de datos. Generalmente, la base de datos contiene el mismo tipo de datos, pero supongamos que la base de datos contiene algunos datos de diferentes tipos. A continuación encontrará la captura de pantalla de la base de datos que contiene algunos datos ficticios:

datos ficticios

Para obtener la base de datos de esta base de datos, adjunte el ValueEventListener a la referencia de la base de datos. El oyente se puede agregar con el siguiente código:

mGetReference.addValueEventListener (new ValueEventListener () {@Override public void onDataChange (@NonNull DataSnapshot dataSnapshot) {if (Recopilación de datos) / HcMac. para; (String key: dataMap.keySet ()) {Object data = dataMap.get (key); intente {HashMap <String, Object> userData = (HashMap <String, Object>) data; User mUser = new User ( (String) userData.get ("name"), (int) (long) userData.get ("age")); addTextToView (mUser.getName () + "-" + Integer.toString (mUser.getAge ()) );} catch (ClassCastException cce) {// Si el objeto no se puede convertir en HashMap, significa que es de tipo String. try {String mString = String.valueOf (dataMap.get (key)); addTextToView ( mString);} catch (ClassCastException cce2) {}}}}} @ Anular la anulación pública onCancelled (@NonNull DatabaseError databaseError) {}});

Después de adjuntar el oyente, se ejecuta primero, devolviendo inicialmente todos los datos en la base de datos en ese momento. Este oyente se invocará más adelante en el momento en que se produzca cualquier cambio en la base de datos en la ruta señalada por la referencia a la que se adjunta el oyente.

Resumen

Después de seguir el procedimiento anterior, podrá obtener datos de la base de datos de Firebase Realtime en Android.


Leave a Reply

Your email address will not be published. Required fields are marked *