How to fetch data from Firebase in Android?

¿Cómo obtener datos de Firebase en Android?


Objetivos del blog

¿Cómo obtener datos de Firebase en Android?

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

Pre-requisitos

Necesitamos tener un proyecto de Android Studio y un proyecto de Firebase listos para usar Firebase Realtime Database. 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 de Firebase:

1. Utilice la herramienta https://console.firebase.google.com

2. Haga clic en “Añadir proyecto.

3. Introduzca el nombre del proyecto y acepte las condiciones y haga clic en “Continúe.

 

Añadir proyecto

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

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

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

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

8. Luego haga clic en la opción “Base de datos” del 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 Firebase Realtime Database en el archivo build.gradle del 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 qué es 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 Firebase Database para poder usarla. La instancia se puede crear con 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 de Firebase se almacenan en 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:

 

Referencia de base de datos privada 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 escuche activamente cualquier cambio realizado en la base de datos. Este agente de escucha 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. Por lo general, 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, encuentre 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 ValueEventListener a la referencia de la base de datos. El oyente se puede agregar con el siguiente código:

 

mGetReference.addValueEventListener(nuevo ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { if (dataSnapshot.exists()){ HashMap mapa de datos = (mapa hash ) instantánea de datos.getValue(); for (String key: dataMap.keySet()){ Datos del objeto = dataMap.get(key); prueba{ HashMap datos de usuario = (HashMap ) datos; Usuario mUser = nuevo Usuario((String) userData.get("nombre"), (int) (long) userData.get("edad")); 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. prueba{ String mString = String.valueOf(dataMap.get(key)); addTextToView(mString); }catch (ClassCastException cce2){ } } } } } @Override public void 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 tarde en el momento en que se produzca algún cambio en la base de datos en la ruta señalada por la referencia a la que está adjunto el oyente.

Resumen

Después de seguir el procedimiento anterior, podrá obtener datos de la base de datos Firebase Realtime en Android. Si tiene algún problema, no dude en comunicarse con nosotros en support@knowband.com. También ofrecemos desarrollo personalizado y módulos para las principales plataformas de CMS como Prestashop, Opencart, Magento, Magento 2 y Woocommerce. Echa un vistazo a nuestros más populares Creador de aplicaciones móviles sin código de Woocommerce:

 

Leave a Reply

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