Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls noch nicht geschehen.
Datenbank erstellen
Rufen Sie in der Firebase-Konsole den Abschnitt Realtime Database auf. Sie werden aufgefordert, ein vorhandenes Firebase-Projekt auszuwählen. Folgen Sie dem Workflow zur Datenbankerstellung.
Wählen Sie einen Startmodus für Ihr Firebase Security Rules aus:
- Testmodus
Gut für die ersten Schritte mit den Mobil- und Web-Clientbibliotheken, allerdings können Ihre Daten von beliebigen Personen gelesen und überschrieben werden. Prüfen Sie nach dem Test den Abschnitt Firebase Realtime Database-Regeln verstehen.
Wählen Sie „testmode“ aus, um mit dem Web-, Apple- oder Android-SDK zu beginnen.
- Sperrmodus
Verweigert alle Lese- und Schreibvorgänge von Mobil- und Webclients. Ihre authentifizierten Anwendungsserver können weiterhin auf Ihre Datenbank zugreifen.
Wählen Sie einen Speicherort für die Datenbank aus.
Je nach Speicherort der Datenbank hat die URL für die neue Datenbank eines der folgenden Formate:
(für Datenbanken inDATABASE_NAME.firebaseio.com
us-central1
) (für Datenbanken an allen anderen Standorten)DATABASE_NAME.REGION.firebasedatabase.app
Klicken Sie auf Fertig.
Wenn Sie Realtime Database aktivieren, wird auch die API im Cloud API Manager aktiviert.
Realtime Database SDK zu Ihrer App hinzufügen
Fügen Sie in der Gradle-Datei Ihres Moduls (auf App-Ebene) (in der Regel<project>/<app-module>/build.gradle.kts
oder <project>/<app-module>/build.gradle
) die Abhängigkeit für die Realtime Database-Bibliothek für Android hinzu. Wir empfehlen, die Firebase Android BoM zu verwenden, um die Versionsverwaltung der Bibliothek zu steuern.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.0.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") }
Mit der Firebase Android BoM haben Sie immer eine kompatible Version der Firebase Android-Bibliotheken in Ihrer App.
(Alternative) Firebase-Bibliotheksabhängigkeiten ohne Verwendung von BoM hinzufügen
Wenn Sie die Firebase BoM nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden Abhängigkeitszeile angeben.
Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, um sicherzustellen, dass alle Versionen kompatibel sind.
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:22.0.0") }
Realtime Database Security Rules konfigurieren
Die Realtime Database bietet eine deklarative Regelsprache, mit der Sie definieren können, wie Ihre Daten strukturiert und indexiert werden sollen und wann Ihre Daten gelesen und geschrieben werden können.
In Ihre Datenbank schreiben
Rufen Sie mit getInstance()
eine Instanz Ihrer Datenbank ab und verweisen Sie auf den Speicherort, in den Sie schreiben möchten.
Kotlin
// 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!");
So können Sie eine Reihe von Datentypen in der Datenbank speichern, einschließlich Java-Objekten. Wenn Sie ein Objekt speichern, werden die Antworten von allen Gettern als untergeordnete Elemente dieses Standorts gespeichert.
Daten aus Ihrer Datenbank lesen
Damit Ihre App-Daten in Echtzeit aktualisiert werden, sollten Sie der gerade erstellten Referenz ein ValueEventListener
hinzufügen.
Die Methode onDataChange()
in dieser Klasse wird einmal ausgelöst, wenn der Listener angehängt wird, und dann jedes Mal, wenn sich die Daten ändern, einschließlich der untergeordneten Elemente.
Kotlin
// 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()); } });
Optional: ProGuard konfigurieren
Wenn Sie Firebase Realtime Database in Ihrer App zusammen mit ProGuard verwenden, müssen Sie berücksichtigen, wie Ihre Modellobjekte nach der Verschleierung serialisiert und deserialisiert werden. Wenn Sie DataSnapshot.getValue(Class)
oder DatabaseReference.setValue(Object)
zum Lesen und Schreiben von Daten verwenden, müssen Sie der Datei proguard-rules.pro
Regeln hinzufügen:
# 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.** {
*;
}
Wenn Sie Hilfe bei Fragen oder Problemen im Zusammenhang mit ProGuard benötigen, besuchen Sie die Guardsquare-Communityforen, um Unterstützung von einem Experten zu erhalten.
Einführung vorbereiten
Bevor Sie Ihre App starten, sollten Sie unsere Checkliste für den Start durchgehen, um sicherzustellen, dass Ihre App bereit ist.
Achten Sie darauf, App Check zu aktivieren, damit nur Ihre Apps auf Ihre Datenbanken zugreifen können.