App mit Firebase verbinden

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

Datenbank erstellen

  1. Rufen Sie in der Firebase-Konsole Datenbanken und Speicher > Realtime Database auf.

  2. Klicken Sie auf Datenbank erstellen.

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

    Testmodus

    Gut für den Einstieg in die mobilen und Web-Clientbibliotheken, aber jeder kann Ihre Daten lesen und überschreiben. Nach dem Testen sollten Sie sich den Abschnitt Firebase Realtime Database-Regeln verstehen ansehen.

    Wählen Sie den Testmodus 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.

  4. Wählen Sie einen Standort 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)

  5. Klicken Sie auf Fertig.

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

Realtime Database SDK zu Ihrer App hinzufügen

Fügen Sie in der Gradle-Datei des Moduls (auf App-Ebene) (normalerweise <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 Bibliotheksversionierung zu steuern.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.0.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")
}

Mit der Firebase Android BoM haben Sie immer eine kompatible Version der Firebase Android-Bibliotheken in Ihrer App.

(Alternative)  Firebase-Bibliotheksabhängigkeiten ohne Verwendung der 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 zur Verwaltung der Bibliotheksversionen zu verwenden. So wird sichergestellt, 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:23.0.0")
}

Realtime Database Security Rules konfigurieren

Die Realtime Database bietet eine deklarative Regelsprache, mit der Sie festlegen können, wie Ihre Daten strukturiert und indexiert werden sollen und wann Daten gelesen und geschrieben werden können.

In die Datenbank schreiben

Rufen Sie mit getInstance() eine Instanz Ihrer Datenbank ab und verweisen Sie auf den Speicherort, an 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!");

Auf diese Weise 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 Speicherorts gespeichert.

Aus der Datenbank lesen

Damit die 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 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 Fragen oder Probleme im Zusammenhang mit ProGuard haben, können Sie sich in den Guardsquare-Community-Foren an einen Experten wenden.

Einführung vorbereiten

Bevor Sie Ihre App veröffentlichen, sollten Sie unsere Checkliste für die Veröffentlichung durchgehen, um sicherzustellen, dass Ihre App bereit ist.

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

Nächste Schritte