Wie kann ich Daten von Firebase in Android abrufen?

Ziele des Blogs

Nach dem Lesen dieses Blogs können wir Daten aus der Firebase-Echtzeitdatenbank abrufen. Diese Daten können einfache Datentypen wie Strings oder komplexe Datentypen wie Java-Objekte enthalten.

Die Anforderungen:

Wir benötigen ein Android Studio-Projekt und ein Firebase-Projekt, um die Firebase-Echtzeitdatenbank verwenden zu können. Erstellen Sie ein neues Android Studio-Projekt (oder verwenden Sie ein vorhandenes Projekt). Dieses Android Studio-Projekt wird für die Arbeit mit der Echtzeitdatenbank verwendet. Führen Sie die folgenden Schritte aus, um das Firebase-Projekt zu erstellen.

1. Gehe zu https://console.firebase.google.com

2. Klicken Sie auf "Projekt hinzufügen" Taste.

3. Geben Sie den Projektnamen ein und akzeptieren Sie die Bedingungen und klicken Sie auf "Fortfahren" Taste.

Projekt hinzufügen

4. Fügen Sie dann die Android-App Ihrem Projekt hinzu. Es muss der Paketname der App eingegeben werden. Klicken Sie auf Weiter.

5. Laden Sie die Datei google-services.json herunter, und verschieben Sie diese Datei an den Speicherort im Android-Projekt in Android Studio, wie auf dem Bildschirm angegeben.

6. Im nächsten Schritt wäre ein kleines Tutorial zum Hinzufügen von 3-Codezeilen in den Dateien build.gradle auf Projektebene und App-Ebene enthalten. Fügen Sie sie entsprechend hinzu.

7. Beenden Sie dann den Vorgang des Hinzufügens der Android-App zum Projekt.

8. Klicken Sie dann im linken Menü auf die Option "Datenbank" und dann auf die Schaltfläche "Datenbank erstellen".

Datenbank erstellen?

9. Das Firebase-Setup ist jetzt abgeschlossen. Fügen Sie nun die Firebase-Bibliothek für die Verwendung der Firebase-Echtzeitdatenbank in der build.gradle-Datei auf App-Ebene hinzu. Dies kann durch Hinzufügen der folgenden Zeile erfolgen:

Implementierung 'com.google.firebase: Firebase-Datenbank: 16.0.6'

Code-Implementierung

Bevor Sie die Referenzen abrufen, müssen Sie verstehen, was eine Firebase-Referenz ist. Eine Firebase-Referenz verweist auf einen Ort in der Firebase-Datenbank, an dem Daten gespeichert werden. Auch wenn Sie mehrere Verweise erstellen, teilen sie alle dieselbe Verbindung, sofern Sie beim Erstellen des Verweises aus der Datenbankinstanz denselben Pfad verwendet haben. Zunächst benötigen wir eine Instanz der Firebase-Datenbank, um diese verwenden zu können. Die Instanz kann durch die folgende Codezeile erstellt werden.

private FirebaseDatabase mDatabase = FirebaseDatabase.getInstance ();

Nun müssen Referenzen für die Pfade erstellt werden, in denen die Daten in der Datenbank gespeichert sind. Da die Daten in der Firebase-Datenbank im JSON-Format gespeichert werden, sind die Schlüssel des JSON-Objekts die in den Referenzen angegebenen Pfade. Die Referenz auf den Wurzelknoten kann durch die folgende Codezeile erstellt werden:

private DatabaseReference mGetReference = mDatabase.getReference ();

Nachdem die Referenz der Datenbank abgerufen wurde, muss ein asynchroner Listener an die Datenbankreferenz angehängt werden, der aktiv auf Änderungen in der Datenbank wartet. Dieser Listener gibt beim ersten Anhängen zum ersten Mal einen Daten-Snapshot der Datenbank zurück. Dann wird der Daten-Snapshot zurückgegeben, wenn an dem Pfad, auf den die Datenbankreferenz verweist, Änderungen vorgenommen werden. Normalerweise enthält die Datenbank denselben Datentyp, es wird jedoch davon ausgegangen, dass die Datenbank Daten verschiedener Typen enthält. Unten finden Sie den Screenshot der Datenbank mit einigen Dummy-Daten:

Dummy-Daten

Um die Datenbank aus dieser Datenbank abzurufen, hängen Sie den ValueEventListener an die Datenbankreferenz an. Der Listener kann durch folgenden Code hinzugefügt werden:

mGetReference.addValueEventListener (neuer ValueEventListener () {@Override public void onDataChange (@NonNull DataSnapshot dataSnapshot) {if (dataSnapshot.exists ()) {HashMap <Zeichenfolge, Objekt> dataAraNachricht (). for; (String key: dataMap.keySet ()) {Object data = dataMap.get (Schlüssel); try {HashMap <String, Object> userData = (HashMap <String, Object>) Daten; User mUser = neuer Benutzer ( (String) userData.get ("name"), (int) (long) userData.get ("age")); addTextToView (mUser.getName () + "-" + Integer.toString (mUser.getAge ()) }; catch (ClassCastException cce) {// Wenn das Objekt nicht in HashMap umgewandelt werden kann, hat dies den Typ String. try {String mString = String.valueOf (dataMap.get (key)); addTextToView ( mString);} catch (ClassCastException cce2) {}}}}} @Override public void onCancelled (@NonNull DatabaseError databaseError) {}});

Nachdem der Listener angehängt wurde, wird er zuerst ausgeführt, wobei zunächst alle Daten in der Datenbank zu diesem Zeitpunkt zurückgegeben werden. Dieser Listener wird zu einem Zeitpunkt aufgerufen, zu dem Änderungen in der Datenbank an dem Pfad vorgenommen werden, auf den die Referenz verweist, an die der Listener angehängt ist.

Zusammenfassung

Nach dem oben beschriebenen Verfahren können Sie Daten aus der Firebase-Echtzeit-Datenbank in Android abrufen.


Leave a Reply

Your email address will not be published. Required fields are marked *