¿Cómo recuperar datos de Firebase Realtime Database en Android?

Firebase Realtime Database es el servicio de back-end proporcionado por Google para manejar tareas de back-end para sus aplicaciones de Android, aplicaciones de IOS y sus sitios web. Proporciona tantos servicios como almacenamiento, base de datos y muchos más. La característica por la que Firebase es famoso es por su Firebase Realtime Database. Al usar Firebase Realtime Database en su aplicación, puede brindar actualizaciones de datos en vivo a sus usuarios sin tener que actualizar su aplicación. Entonces, en este artículo, crearemos una aplicación simple en la que usaremos Firebase Realtime Database y recuperaremos los datos de la base de datos Firebase Realtime y veremos los cambios de datos en tiempo real en nuestra aplicación. 

¿Qué vamos a construir en este artículo?

Construiremos una aplicación de Android simple en la que mostraremos una vista de texto simple. Dentro de ese TextView , mostraremos datos de Firebase. Veremos cómo ocurren los cambios de datos en tiempo real en nuestra aplicación al cambiar los datos en el lado del servidor. Tenga en cuenta que vamos a implementar este proyecto utilizando el  lenguaje Java  . 

Nota: También puede consultar ¿Cómo guardar datos en Firebase Realtime Database en Android?

Implementación paso a paso

Paso 1: Crear un nuevo Proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.  

Paso 2: conecta tu aplicación a Firebase

Después de crear un nuevo proyecto, vaya a la opción Herramientas en la barra superior. Dentro de eso, haga clic en Firebase. Después de hacer clic en Firebase, puede ver la columna de la derecha que se menciona a continuación en la captura de pantalla.  

Dentro de esa columna, navegue hasta Firebase Realtime Database. Haga clic en esa opción y verá dos opciones en Conectar la aplicación a Firebase y Agregar Firebase Realtime Database a su aplicación. Haga clic en Conectar ahora y su aplicación se conectará a Firebase. Después de eso, haga clic en la segunda opción y ahora su aplicación está conectada a Firebase. 

Después de completar este proceso, verá la siguiente pantalla. 

Ahora verifique que su aplicación esté conectada a Firebase o no. Vaya a su archivo build.gradle . Navegue a la aplicación > Gradle Scripts > archivo build.gradle y asegúrese de que la dependencia a continuación se agregue en su sección de dependencias. 

implementación ‘com.google.firebase:firebase-database:19.6.0’

Si la dependencia anterior no se agrega en su sección de dependencias. Agregue esta dependencia y sincronice su proyecto. Ahora nos moveremos hacia la parte XML de nuestra aplicación. 

Paso 3: trabajar con el archivo activity_main.xml

Vaya al archivo activity_main.xml y consulte el siguiente código. A continuación se muestra el código para el archivo activity_main.xml .

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
 
    <TextView
        android:id="@+id/idTVRetrieveData"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Retrieve Data"
        android:textAlignment="center"
        android:textColor="@color/purple_500"
        android:textSize="18sp" />
 
</RelativeLayout>

 
Paso 4: agregue permiso de Internet en su archivo AndroidManifest.xml

Agregue el permiso para Internet en el archivo AndroidManifest.xml. 

XML

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 
Paso 5: trabajar con el archivo MainActivity.java

Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.

Java

import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
 
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
 
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
 
public class MainActivity extends AppCompatActivity {
 
    // creating a variable for
    // our Firebase Database.
    FirebaseDatabase firebaseDatabase;
     
    // creating a variable for our
    // Database Reference for Firebase.
    DatabaseReference databaseReference;
     
    // variable for Text view.
    private TextView retrieveTV;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         
        // below line is used to get the instance
        // of our Firebase database.
        firebaseDatabase = FirebaseDatabase.getInstance();
         
        // below line is used to get
        // reference for our database.
        databaseReference = firebaseDatabase.getReference("Data");
         
        // initializing our object class variable.
        retrieveTV = findViewById(R.id.idTVRetrieveData);
         
        // calling method
        // for getting data.
        getdata();
    }
 
    private void getdata() {
 
        // calling add value event listener method
        // for getting the values from database.
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                // this method is call to get the realtime
                // updates in the data.
                // this method is called when the data is
                // changed in our Firebase console.
                // below line is for getting the data from
                // snapshot of our database.
                String value = snapshot.getValue(String.class);
                 
                // after getting the value we are setting
                // our value to our text view in below line.
                retrieveTV.setText(value);
            }
 
            @Override
            public void onCancelled(@NonNull DatabaseError error) {
                // calling on cancelled method when we receive
                // any error or we are not able to get the data.
                Toast.makeText(MainActivity.this, "Fail to get data.", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Después de agregar este código a su aplicación. Ahora vaya a Firebase y haga clic en la opción Ir a la consola que se encuentra en la esquina superior derecha.  

 Después de hacer clic en esta pantalla, verá la pantalla a continuación con todo su proyecto dentro que selecciona su proyecto.  

Dentro de esa pantalla, haga clic en n Base de datos en tiempo real en la ventana izquierda.   

Después de hacer clic en esta opción, verá la pantalla en el lado derecho. En esta página, haga clic en la opción Reglas que se encuentra en la barra superior. Verá la siguiente pantalla. 

En este proyecto, estamos agregando nuestras reglas como verdaderas para lectura y escritura porque no estamos usando ninguna autenticación para verificar a nuestro usuario. Por lo tanto, actualmente lo estamos configurando como verdadero para probar nuestra aplicación. Después de cambiar sus reglas. Haga clic en el botón publicar en la esquina superior derecha y sus reglas se guardarán allí. Ahora vuelva de nuevo a la pestaña Datos. Ahora agregaremos nuestros datos a Firebase manualmente desde el mismo Firebase.

Paso 6: Agregar datos en Firebase Console 

Dentro de Firebase en la pestaña Datos, verá la siguiente pantalla. Pase el cursor sobre nulo y haga clic en la opción «+» en el lado derecho y haga clic en esa opción. Después de hacer clic en esa opción. Agregue los datos como se agregan en la imagen a continuación. Asegúrese de agregar «Datos» en el campo Nombre porque estamos configurando nuestra referencia para Firebase como «Datos» en nuestro código en la línea 55. Por lo tanto, debemos configurarlo en «Datos». Puede cambiar su referencia y también cambiarla en la Base de datos. Dentro del campo de valor, puede agregar cualquier dato que desee. Esta será la string que vamos a mostrar dentro de nuestra vista de texto. Después de agregar datos, haga clic en el botón Agregar y sus datos se agregarán en Firebase y estos datos se mostrarán en su aplicación. 

Después de agregar estos datos, verá la siguiente pantalla:  

Después de agregar estos datos, ejecute su aplicación y vea el resultado de la aplicación:

Producción: 

Mientras prueba su aplicación, puede cambiar su campo de valor en su consola Firebase y puede ver que también se actualizará en su aplicación. Entonces, en esta tarea, no tenemos que actualizar nuestra aplicación en ningún momento. Tan pronto como actualicemos el valor en nuestro Firebase, también se actualizará en nuestra aplicación. En el siguiente video, hemos cambiado los datos de Firebase y también se está actualizando en la aplicación. 
 

Publicación traducida automáticamente

Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *