App mit Firebase verbinden

Falls noch nicht geschehen, Fügen Sie Firebase zu Ihrem Android-Projekt hinzu.

Datenbank erstellen

  1. Gehen Sie zum Abschnitt Realtime Database des Firebase-Konsole. Sie werden aufgefordert, ein vorhandenes Firebase-Projekt auszuwählen. Folgen Sie dem Workflow zur Datenbankerstellung.

  2. Wähle einen Startmodus für dein Firebase Security Rules aus:

    Testmodus

    Gut für den Einstieg in die Mobil- und Web-Clientbibliotheken, ermöglicht aber jedem, Ihre Daten zu lesen und zu überschreiben. Machen Sie nach dem Testen lesen Sie die Informationen zu Firebase Realtime Database-Regeln. .

    Wenn du das Web-, Apple- oder Android SDK verwenden möchtest, wähle „testmode“ aus.

    Sperrmodus

    Alle Lese- und Schreibvorgänge von Mobil- und Webclients werden abgelehnt. Ihre authentifizierten Anwendungsserver können weiterhin auf Ihre Datenbank zugreifen.

  3. 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:

    • DATABASE_NAME.firebaseio.com (für Datenbanken in us-central1)

    • DATABASE_NAME.REGION.firebasedatabase.app (für Datenbanken an allen anderen Standorten)

  4. Klicken Sie auf Fertig.

Wenn Sie Realtime Database aktivieren, wird auch die API im Cloud API Manager

Realtime Database SDK in Ihre App einbinden

In der Gradle-Datei des Moduls (auf App-Ebene) (normalerweise <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle) Fügen Sie die Abhängigkeit für die Realtime Database-Bibliothek für Android hinzu. Wir empfehlen die Verwendung des Firebase Android BoM um die Versionsverwaltung der Bibliothek zu steuern.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.2.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 dem Firebase Android BoM Ihre App verwendet immer kompatible Versionen der Firebase Android Libraries.

(Alternative) Firebase-Bibliotheksabhängigkeiten ohne BoM hinzufügen

Wenn Sie Firebase BoM nicht verwenden, müssen Sie jede Firebase-Bibliotheksversion angeben in der Abhängigkeitszeile ein.

Wenn Sie in Ihrer App mehrere Firebase-Bibliotheken verwenden, empfehlen, Bibliotheksversionen mit der BoM zu verwalten. Dadurch wird sichergestellt, dass alle Versionen kompatibel.

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:21.0.0")
}
Suchen Sie nach einem Kotlin-spezifischen Bibliotheksmodul? Beginnt in Oktober 2023 (Firebase BoM 32.5.0) können sowohl Kotlin- als auch Java-Entwickler sind vom Modul der Hauptbibliothek abhängig (Details finden Sie in der FAQs zu dieser Initiative).

Realtime Database Security Rules konfigurieren

Die Realtime Database stellt eine deklarative Regelsprache bereit, mit der definieren Sie, wie Ihre Daten strukturiert, und wann Ihre Daten gelesen und geschrieben werden können.

In die Datenbank schreiben

Rufen Sie mit getInstance() eine Instanz Ihrer Datenbank ab und auf den Speicherort verweisen, an dem 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, einschließlich Java Objekte. Wenn Sie ein Objekt speichern, werden die Antworten aller Getter unter diesem Standort untergeordnet sind.

Aus Ihrer Datenbank lesen

Damit Ihre App-Daten in Echtzeit aktualisiert werden, sollten Sie der gerade erstellten Referenz einen ValueEventListener hinzufügen.

Die Methode onDataChange() in dieser Klasse wird einmal ausgelöst, wenn der Listener angehängt werden, und jedes Mal, 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: ProGuard konfigurieren

Wenn du Firebase Realtime Database in deiner App zusammen mit ProGuard verwendest, musst du wie Ihre Modellobjekte nach dem Definieren Verschleierung. Wenn Sie DataSnapshot.getValue(Class) oder DatabaseReference.setValue(Object) zum Lesen und Schreiben von Daten verwenden, müssen Sie Fügen Sie der Datei proguard-rules.pro Regeln hinzu:

    # 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 Fragen oder Probleme im Zusammenhang mit ProGuard haben, besuchen Sie die Guardsquare-Communityforen, um Hilfe von einem Experten zu erhalten.

Einführung vorbereiten

Bevor Sie Ihre App veröffentlichen, sollten Sie unsere Checkliste für die Einführung an, um sicherzustellen, bereit!

Aktivieren Sie App Check, damit nur Ihre Anwendungen auf Ihre Datenbanken zugreifen können.

Nächste Schritte