Verbinden Sie Ihre App mit Firebase,Verbinden Sie Ihre App mit Firebase

Fügen Sie Ihrem Android-Projekt Firebase hinzu , falls Sie dies noch nicht getan haben .

Erstellen Sie eine Datenbank

  1. Navigieren Sie zum Abschnitt Echtzeitdatenbank der Firebase-Konsole . Sie werden aufgefordert, ein vorhandenes Firebase-Projekt auszuwählen. Folgen Sie dem Workflow zur Datenbankerstellung.

  2. Wählen Sie einen Startmodus für Ihre Firebase-Sicherheitsregeln aus:

    Testmodus

    Gut für den Einstieg in die mobilen und Web-Client-Bibliotheken, aber jeder kann Ihre Daten lesen und überschreiben. Lesen Sie nach dem Testen unbedingt den Abschnitt Grundlegendes zu Firebase-Echtzeitdatenbankregeln .

    Um mit dem Web-, Apple- oder Android-SDK zu beginnen, wählen Sie den Testmodus aus.

    Gesperrter Modus

    Verweigert alle Lese- und Schreibvorgänge von Mobil- und Web-Clients. Ihre authentifizierten Anwendungsserver können weiterhin auf Ihre Datenbank zugreifen.

  3. Wählen Sie einen Speicherort für die Datenbank.

    Abhängig vom 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 aktiviert.

Fügen Sie Ihrer App das Realtime Database SDK hinzu

Fügen Sie in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise <project>/<app-module>/build.gradle ) die Abhängigkeit für die Realtime Database Android-Bibliothek 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 von 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, dass wir bei Verwendung mehrerer Firebase-Bibliotheken in Ihrer App dringend empfehlen, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, wodurch sichergestellt wird, 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 von 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, dass wir bei Verwendung mehrerer Firebase-Bibliotheken in Ihrer App dringend empfehlen, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, wodurch sichergestellt wird, 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 Realtime Database bietet eine deklarative Regelsprache, mit der Sie definieren können, wie Ihre Daten strukturiert, 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, einschließlich Java-Objekte. Wenn Sie ein Objekt speichern, werden die Antworten aller Getter als Kinder dieses Speicherorts gespeichert.

Lesen Sie aus Ihrer Datenbank

Um Ihre App-Daten in Echtzeit zu aktualisieren, sollten Sie der soeben erstellten Referenz einen ValueEventListener hinzufügen.

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

Wenn Sie die Firebase Realtime Database zusammen mit ProGuard in Ihrer App 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 Launch-Checkliste durchzugehen, um sicherzustellen, dass Ihre App einsatzbereit ist!

Achten Sie darauf, App Check zu aktivieren, um sicherzustellen, dass nur Ihre Apps auf Ihre Datenbanken zugreifen können.

Nächste Schritte