Conecta tu aplicación a Firebase

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

Crear una base de datos

  1. Navegue a la sección Base de datos en tiempo real de Firebase console . Se te pedirá que selecciones un proyecto de Firebase existente. Siga el flujo de trabajo de creación de la base de datos.

  2. Seleccione un modo de inicio para sus reglas de seguridad de Firebase:

    Modo de prueba

    Bueno para comenzar con las bibliotecas de clientes web y móviles, pero permite que cualquiera lea y sobrescriba sus datos. Después de la prueba, asegúrese de revisar la sección Comprender las reglas de la base de datos en tiempo real de Firebase .

    Para comenzar con el SDK web, Apple o Android, seleccione el modo de prueba.

    Modo bloqueado

    Niega todas las lecturas y escrituras desde clientes web y móviles. Sus servidores de aplicaciones autenticados aún pueden acceder a su base de datos.

  3. Elija una ubicación para la base de datos.

    Dependiendo de la ubicación de la base de datos , la URL de la nueva base de datos tendrá una de las siguientes formas:

    • DATABASE_NAME .firebaseio.com (para bases de datos en us-central1 )

    • DATABASE_NAME . REGION .firebasedatabase.app (para bases de datos en todas las demás ubicaciones)

  4. Haga clic en Listo.

Cuando habilita Realtime Database, también habilita la API en Cloud API Manager .

Agregue el SDK de Realtime Database a su aplicación

En el archivo Gradle de su módulo (nivel de aplicación) (generalmente <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle ), agregue la dependencia para la base de datos en tiempo real biblioteca para Android. Recomendamos utilizar Firebase Android BoM para controlar el control de versiones de la biblioteca.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:32.8.0"))

    // Add the dependency for the Realtime Database library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-database")
}

Al usar Firebase Android BoM , su aplicación siempre usará versiones compatibles de las bibliotecas de Firebase Android.

(Alternativa) Agregue dependencias de la biblioteca de Firebase sin usar la BoM

Si elige no utilizar la BoM de Firebase, debe especificar cada versión de la biblioteca de Firebase en su línea de dependencia.

Tenga en cuenta que si usa varias bibliotecas de Firebase en su aplicación, le recomendamos encarecidamente usar la BoM para administrar las versiones de la biblioteca, lo que garantiza que todas las versiones sean compatibles.

dependencies {
    // Add the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-database:20.3.1")
}
¿Busca un módulo de biblioteca específico de Kotlin? A partir de octubre de 2023 (Firebase BoM 32.5.0) , tanto los desarrolladores de Kotlin como los de Java podrán depender del módulo de biblioteca principal (para más detalles, consulte las preguntas frecuentes sobre esta iniciativa ).

Configurar reglas de seguridad de bases de datos en tiempo real

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

Escribe en tu base de datos.

Recupere una instancia de su base de datos usando getInstance() y haga referencia a la ubicación en la que desea escribir.

Kotlin+KTX

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

myRef.setValue("Hello, World!")

Java

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

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

Puede guardar una variedad de tipos de datos en la base de datos de esta manera, incluidos objetos Java. Cuando guarda un objeto, las respuestas de los captadores se guardarán como elementos secundarios de esta ubicación.

Leer desde su base de datos

Para que los datos de su aplicación se actualicen en tiempo real, debe agregar un ValueEventListener a la referencia que acaba de crear.

El método onDataChange() en esta clase se activa una vez cuando se adjunta el oyente y nuevamente cada vez que cambian los datos, incluidos los secundarios.

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())
    }
})

Java

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull 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(@NonNull DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

Opcional: configurar ProGuard

Cuando utilice Firebase Realtime Database en su aplicación junto con ProGuard, debe considerar cómo se serializarán y deserializarán los objetos de su modelo después de la ofuscación. Si usa DataSnapshot.getValue(Class) o DatabaseReference.setValue(Object) para leer y escribir datos, deberá agregar reglas al archivo proguard-rules.pro :

    # Add this global rule
    -keepattributes Signature

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

Para obtener ayuda con preguntas o problemas relacionados con ProGuard, visite los foros de la comunidad de Guardsquare para obtener asistencia de un experto.

Prepárese para el lanzamiento

Antes de iniciar su aplicación, le recomendamos revisar nuestra lista de verificación de lanzamiento para asegurarse de que su aplicación esté lista para funcionar.

Asegúrese de habilitar App Check para ayudar a garantizar que solo sus aplicaciones puedan acceder a sus bases de datos.

Próximos pasos