Si aún no lo has hecho, agrega Firebase a tu proyecto de Android.
Crea una base de datos
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.
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 la sección Comprende las reglas de seguridad de Firebase Realtime Database.
Si quieres comenzar a usar los SDK de Apple, Android o la Web, selecciona el modo de prueba.
- Modo bloqueado
Rechaza todas las operaciones de lectura y escritura de clientes móviles y web. Tus servidores de aplicaciones autenticados aún pueden acceder a tu base de datos.
Elige una ubicación para la base de datos.
Según la ubicación de la base de datos, la URL de la base de datos nueva tendrá uno de los siguientes formatos:
(para bases de datos enDATABASE_NAME.firebaseio.com
us-central1
) (para bases de datos en todas las demás ubicaciones)DATABASE_NAME.REGION.firebasedatabase.app
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
En el archivo de Gradle (generalmente<project>/<app-module>/build.gradle.kts
o <project>/<app-module>/build.gradle
)
de tu módulo (a nivel de la app),
agrega la dependencia de la biblioteca de Android para Realtime Database. Te recomendamos usar la
BoM de Firebase para Android para controlar
las versiones de las bibliotecas.
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // 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-ktx") }
Si usas la BoM de Firebase para Android, tu app siempre utilizará versiones compatibles de las bibliotecas de Firebase para Android.
(Alternativa) Agrega dependencias de la biblioteca de Firebase sin usar la BoM
Si eliges no usar la BoM de Firebase, debes especificar cada versión de la biblioteca de Firebase en su línea de dependencia.
Ten en cuenta que, si usas múltiples bibliotecas de Firebase en tu app, es muy recomendable que utilices la BoM para administrar las versiones de las bibliotecas para garantizar 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-ktx:20.2.2") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // 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") }
Si usas la BoM de Firebase para Android, tu app siempre utilizará versiones compatibles de las bibliotecas de Firebase para Android.
(Alternativa) Agrega dependencias de la biblioteca de Firebase sin usar la BoM
Si eliges no usar la BoM de Firebase, debes especificar cada versión de la biblioteca de Firebase en su línea de dependencia.
Ten en cuenta que, si usas múltiples bibliotecas de Firebase en tu app, es muy recomendable que utilices la BoM para administrar las versiones de las bibliotecas para garantizar 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.2.2") }
Configura reglas de seguridad 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.
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!");
De esta manera, puedes guardar diversos tipos de datos en la base de datos, incluso objetos de Java. Cuando guardas un objeto, las respuestas de cualquier método get 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.
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: Configura ProGuard
Cuando usas Firebase Realtime Database en tu app junto con ProGuard, debes
considerar cómo se serializarán y deserializarán los objetos de tu modelo 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 this rule to fit the structure of your app.
-keepclassmembers class com.yourcompany.models.** {
*;
}
Si quieres obtener ayuda con preguntas o problemas relacionados con ProGuard, visita los foros de la comunidad de Guardsquare para recibir asistencia de un experto.
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.
Asegúrate de habilitar la Verificación de aplicaciones para garantizar que solo tus apps puedan acceder a tus bases de datos.
Próximos pasos
- Obtén información sobre cómo estructurar datos para Realtime Database.
- Escala tus datos en varias instancias de bases de datos.
- Lee y escribe datos.
- Consulta tu base de datos en Firebase console.