Falls noch nicht geschehen, fügen Sie Firebase zu Ihrem Android-Projekt hinzu .
Erstellen Sie eine Datenbank
Navigieren Sie zum Abschnitt „Echtzeitdatenbank“ der Firebase-Konsole . Sie werden aufgefordert, ein vorhandenes Firebase-Projekt auszuwählen. Befolgen Sie den Workflow zur Datenbankerstellung.
Wählen Sie einen Startmodus für Ihre Firebase-Sicherheitsregeln:
- Testmodus
Gut für den Einstieg in die Mobil- und Web-Client-Bibliotheken, ermöglicht aber jedem, Ihre Daten zu lesen und zu überschreiben. Lesen Sie nach dem Testen unbedingt den Abschnitt „Verstehen der Firebase-Echtzeitdatenbankregeln“ .
Um mit dem Web-, Apple- oder Android-SDK zu beginnen, wählen Sie den Testmodus.
- Gesperrter Modus
Verweigert alle Lese- und Schreibvorgänge von Mobil- und Web-Clients. Ihre authentifizierten Anwendungsserver können weiterhin auf Ihre Datenbank zugreifen.
Wählen Sie einen Speicherort für die Datenbank.
Abhängig vom Speicherort der Datenbank hat die URL für die neue Datenbank eine der folgenden Formen:
DATABASE_NAME .firebaseio.com
(für Datenbanken inus-central1
)DATABASE_NAME . REGION .firebasedatabase.app
(für Datenbanken an allen anderen Standorten)
Klicken Sie auf Fertig .
Wenn Sie die Echtzeitdatenbank aktivieren, wird auch die API im Cloud API Manager aktiviert.
Fügen Sie das Realtime Database SDK zu Ihrer App hinzu
Fügen Sie in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise<project>/<app-module>/build.gradle
) die Abhängigkeit für die Android-Bibliothek „Realtime Database“ hinzu. Wir empfehlen die Verwendung der Firebase Android BoM zur Steuerung der Bibliotheksversionierung. Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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-ktx' }
Durch die Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen der Firebase Android-Bibliotheken.
(Alternative) Fügen Sie Firebase-Bibliotheksabhängigkeiten hinzu , ohne die Stückliste zu verwenden
Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.
Beachten Sie: Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zum Verwalten der 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-ktx:20.2.2' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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' }
Durch die Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen der Firebase Android-Bibliotheken.
(Alternative) Fügen Sie Firebase-Bibliotheksabhängigkeiten hinzu , ohne die Stückliste zu verwenden
Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.
Beachten Sie: Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zum Verwalten der 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:20.2.2' }
Konfigurieren Sie Echtzeit-Datenbanksicherheitsregeln
Die Echtzeitdatenbank bietet eine deklarative Regelsprache, mit der Sie definieren können, wie Ihre Daten strukturiert sein sollen, wie sie indiziert werden sollen und wann Ihre Daten gelesen und geschrieben werden können.
Schreiben Sie in Ihre Datenbank
Rufen Sie mit getInstance()
eine Instanz Ihrer Datenbank ab und verweisen Sie auf den Speicherort, an den Sie schreiben möchten.
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!");
Auf diese Weise können Sie eine Reihe von Datentypen in der Datenbank speichern, darunter auch Java-Objekte. Wenn Sie ein Objekt speichern, werden die Antworten aller Getter als untergeordnete Elemente dieses Speicherorts gespeichert.
Lesen Sie aus Ihrer Datenbank
Damit Ihre App-Daten in Echtzeit aktualisiert werden, sollten Sie der soeben erstellten Referenz einen ValueEventListener
hinzufügen.
Die onDataChange()
-Methode in dieser Klasse wird einmal ausgelöst, wenn der Listener angehängt wird, und jedes Mal erneut, wenn sich die Daten ändern, einschließlich der untergeordneten Elemente.
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()); } });
Optional: Konfigurieren Sie ProGuard
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.** {
*;
}
Um Hilfe bei Fragen oder Problemen im Zusammenhang mit ProGuard zu erhalten, besuchen Sie die Guardsquare-Community-Foren , um Hilfe von einem Experten zu erhalten.
Bereiten Sie sich auf den Start vor
Bevor Sie Ihre App starten, empfehlen wir Ihnen, unsere Start-Checkliste durchzugehen, um sicherzustellen, dass Ihre App einsatzbereit ist!
Aktivieren Sie unbedingt die App-Prüfung, um sicherzustellen, dass nur Ihre Apps auf Ihre Datenbanken zugreifen können.