Si aún no lo has hecho, agrega Firebase a tu proyecto de Android .
Crear una base de datos
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.
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.
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 enus-central1
)DATABASE_NAME . REGION .firebasedatabase.app
(para bases de datos en todas las demás ubicaciones)
Haga clic en Listo.
Agregue el SDK de Realtime Database a su aplicación
<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")
}
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.
// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")
myRef.setValue("Hello, World!")
// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");
myRef.setValue("Hello, World!");
Leer desde su base de datos
ValueEventListener
a la referencia que acaba de crear.
onDataChange()
en esta clase se activa una vez cuando se adjunta el oyente y nuevamente cada vez que cambian los datos, incluidos los secundarios.
// 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())
}
})
// 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
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.** {
*;
}
Prepárese para el lanzamiento
Próximos pasos
Aprenda a estructurar datos para Realtime Database Escale sus datos en múltiples instancias de bases de datos . Leer y escribir datos . Vea su base de datos en Firebase console .