Instalación y configuración en Android

Conecta la app a Firebase

Si aún no lo has hecho, agrega Firebase a tu proyecto de Android.

Asegúrate de incluir el repositorio Maven de Google en las secciones buildscript y allprojects del archivo build.gradle de nivel de proyecto.

Crea una base de datos

  1. Si aún no lo has hecho, crea un proyecto de Firebase. Para ello, en Firebase console, haz clic en Agregar proyecto y, luego, sigue las instrucciones en pantalla a fin de crear un proyecto de Firebase o agregar servicios de Firebase a un proyecto de GCP existente.

  2. Ve a la sección Realtime Database de Firebase console. Se te pedirá que selecciones un proyecto de Firebase existente. Sigue el flujo de trabajo para crear la base de datos.

  3. Selecciona un modo de inicio para las reglas de seguridad de Firebase:

    Modo de prueba

    Es el modo recomendado si recién comienzas a usar las bibliotecas cliente para dispositivos móviles y la Web, pero permite que todos lean y reemplacen tus datos. Después de que realices las pruebas, asegúrate de revisar el artículo Explicación de las reglas de Firebase Realtime Database.

    Si quieres comenzar a usar los SDK para iOS, Android o la Web, selecciona el modo de prueba.

    Modo bloqueado

    Rechaza todas las lecturas y escrituras de clientes móviles y web. Tus servidores de aplicaciones autenticados aún pueden acceder a tu base de datos.

  4. Haz clic en Listo.

Cuando habilitas Realtime Database, también se habilita la API en el Administrador de API de Cloud.

Agrega el SDK de Realtime Database a tu app

Agrega la dependencia de la biblioteca de Android de Realtime Database al archivo Gradle (generalmente app/build.gradle) de tu módulo (a nivel de la app):

Java

implementation 'com.google.firebase:firebase-database:19.4.0'

Kotlin+KTX

implementation 'com.google.firebase:firebase-database-ktx:19.4.0'

Configura las reglas de Realtime Database

Realtime Database proporciona un lenguaje de reglas declarativas que te permite definir cómo se deben estructurar los datos, cómo se deben indexar y cuándo se pueden leer y escribir.

Realiza operaciones de escritura en tu base de datos

Recupera una instancia de tu base de datos con getInstance() y haz referencia a la ubicación a la que quieras escribir.

Java

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

Kotlin+KTX

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

De esta manera, puedes guardar diversos tipos de datos en la base de datos, incluso objetos Java. Cuando guardas un objeto, las respuestas de cualquier método de obtención se guardan como elementos secundarios de esta ubicación.

Realiza operaciones de lectura desde la base de datos

Para que los datos de tu app se actualicen en tiempo real, agrega un ValueEventListener a la referencia que acabas de crear.

El método onDataChange() de esta clase se activa cuando se adjunta el objeto de escucha y cada vez que cambian los datos, incluidos los secundarios.

Java

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        String value = dataSnapshot.getValue(String.class);
        Log.d(TAG, "Value is: " + value);
    }

    @Override
    public void onCancelled(DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

Kotlin+KTX

// Read from the database
myRef.addValueEventListener(object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        val value = dataSnapshot.getValue<String>()
        Log.d(TAG, "Value is: $value")
    }

    override fun onCancelled(error: DatabaseError) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException())
    }
})

Opcional: Configura ProGuard

Cuando usas Firebase Realtime Database en tu app junto con ProGuard, debes considerar cómo los objetos de tu modelo se serializarán y deserializarán tras la ofuscación. Si usas <DataSnapshot.getValue(Class) o DatabaseReference.setValue(Object) para leer y escribir datos, deberás agregar reglas al archivo proguard-rules.pro, de la siguiente manera:

    # Add this global rule
    -keepattributes Signature

    # This rule will properly ProGuard all the model classes in
    # the package com.yourcompany.models. Modify to fit the structure
    # of your app.
    -keepclassmembers class com.yourcompany.models.** {
      *;
    }

Prepárate para el lanzamiento

Antes de lanzar tu app, te recomendamos revisar nuestra lista de tareas para el lanzamiento a fin de asegurarte de que tu app esté lista.

Próximos pasos