Ziele des Blogs
Nach dem Lesen dieses Blogs können wir Daten aus der Firebase Realtime Database abrufen. Diese Daten können einfache Datentypen wie Strings oder komplexe Datentypen wie Java-Objekte umfassen.
Die Anforderungen:
Wir müssen ein Android Studio-Projekt und ein Firebase-Projekt bereit haben, um die Firebase Realtime Database 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.
4. Fügen Sie dann Ihrem Projekt eine Android-App hinzu. Es erfordert die Eingabe des Paketnamens der App. Klicken Sie auf Weiter.
5. Laden Sie die Datei google-services.json herunter und verschieben Sie diese Datei an den auf dem Bildschirm angegebenen Speicherort im Android-Projekt in Android Studio.
6. Im nächsten Schritt gäbe es ein kleines Tutorial, um 3 Codezeilen in die build.gradle-Dateien auf Projektebene und App-Ebene einzufügen. Fügen Sie sie entsprechend hinzu.
7. Schließen Sie dann diesen Vorgang zum Hinzufügen der Android-App zum Projekt ab.
8. Klicken Sie dann im linken Menü auf die Option „Datenbank“ und dann auf die Schaltfläche „Datenbank erstellen“.
9. Die Einrichtung von Firebase ist abgeschlossen. Fügen Sie nun die Firebase-Bibliothek zur Verwendung der Firebase Realtime Database in der Datei build.gradle auf App-Ebene hinzu. Dies kann durch Hinzufügen der folgenden Zeile erfolgen:
Implementierung 'com.google.firebase:firebase-database:16.0.6'
Code-Implementierung
Bevor Sie die Referenzen abrufen, müssen Sie verstehen, was eine Firebase-Referenz ist. Ein Firebase-Verweis verweist auf einen Speicherort in der Firebase-Datenbank, an dem Daten gespeichert werden. Auch wenn Sie mehrere Referenzen erstellen, nutzen sie alle dieselbe Verbindung, vorausgesetzt, Sie haben beim Erstellen der Referenz aus der Datenbankinstanz denselben Pfad verwendet. Zunächst benötigen wir eine Instanz der Firebase-Datenbank, um sie verwenden zu können. Die Instanz kann durch die folgende Codezeile erstellt werden.
private FirebaseDatabase mDatabase = FirebaseDatabase.getInstance();
Jetzt müssen Verweise auf die Pfade erstellt werden, in denen die Daten in der Datenbank gespeichert sind. Da die Daten in der Firebase-Datenbank im JSON-Format gespeichert sind, 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 Sie die Referenz der Datenbank erhalten haben, muss ein asynchroner Listener an die Datenbankreferenz angehängt werden, der aktiv auf jede Änderung in der Datenbank lauscht. Dieser Listener gibt beim ersten Anhängen zunächst einen Daten-Snapshot der Datenbank zurück. Dann wird der Daten-Snapshot zurückgegeben, wenn eine Änderung an dem Pfad vorgenommen wird, auf den die Datenbankreferenz zeigt. Normalerweise enthält die Datenbank denselben Datentyp, aber nehmen Sie an, dass die Datenbank einige Daten unterschiedlichen Typs enthält. Unten finden Sie den Screenshot der Datenbank mit einigen Dummy-Daten:
Um die Datenbank aus dieser Datenbank abzurufen, hängen Sie den ValueEventListener an die Datenbankreferenz an. Der Listener kann mit folgendem Code hinzugefügt werden:
mGetReference.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { if (dataSnapshot.exists()){ HashMap dataMap = (HashMap ) dataSnapshot.getValue(); for (String key: dataMap.keySet()) { Objektdaten = dataMap.get(key); versuchen Sie {HashMap userData = (HashMap ) Daten; User mUser = new User((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, bedeutet dies, dass es vom Typ String ist. try{String mString = String.valueOf(dataMap.get(key)); addTextToView(mString); }catch (ClassCastException cce2){ } } } } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } });
Nach dem Anhängen des Listeners wird dieser zunächst ausgeführt und gibt zunächst alle Daten in der Datenbank zu diesem Zeitpunkt zurück. Dieser Listener wird später zu dem Zeitpunkt aufgerufen, zu dem irgendeine Änderung in der Datenbank an dem Pfad stattfindet, auf den die Referenz zeigt, an die der Listener angehängt ist.
Zusammenfassung
Nachdem Sie das obige Verfahren befolgt haben, können Sie Daten aus der Firebase Realtime-Datenbank in Android abrufen. Wenn Sie auf Probleme stoßen, können Sie uns gerne unter support@knowband.com erreichen. Werfen Sie einen Blick auf unsere beliebtesten Woocommerce No Code Mobile App-Builder: