Finden Sie heraus, ob childEventListener auf Firebase das Laden aller Daten abgeschlossen hat

Lesezeit: 2 Minuten

Benutzer-Avatar
Stanley Giovanni

Ich verwende die Firebase Realtime Database zum Speichern und Abrufen von Daten für meine Android-Anwendung. In meiner Aktivität rufe ich alle Daten (Beispiel: Liste der Benutzerdaten) von Firebase mit a ab childEventListener.

Ich möchte einen Fortschrittsbalken anzeigen, solange die Daten nicht vollständig aus der Datenbank abgerufen werden. Wie überprüfe ich, ob alle Daten vollständig abgerufen wurden, damit ich den Fortschrittsbalken nach dem Laden der Daten schließen kann?

  • Das klingt seltsam. Ich habe gerade einen neuen Artikel hinzugefügt und bekomme nur: Add -K6ns123jl6xQXfQJR_r to UI after -K4uCQDYR0k05Xqyj6jI Wenn dieses Verhalten immer noch auftritt (und sicher sind, dass Sie den Listener nur mit hinzufügen addListenerForSingleValueEvent(), öffnen Sie eine neue Frage und fügen Sie den minimalen Code hinzu, der zum Reproduzieren Ihres Problems erforderlich ist. Siehe stackoverflow.com/help/mcve

    – Frank van Puffelen

    30. Dezember 2015 um 17:13 Uhr

  • Es wäre wirklich schön, wenn Sie das tun könnten dataSnapshot.parent().getChildrenCount() in onDataChange(). Ich nehme an, zu verwenden addListenerForSingleValueEvent() um die Anzahl der Artikel zu erhalten, wird geladen alle die Daten (die gerade geladen wurden onDataChange()) wieder ?

    – lenooh

    20. Juli 2016 um 19:20 Uhr


  • Hinweis: Diese Lösung scheint nicht zu funktionieren, wenn sich einige Elemente bereits im Client-Cache (Android-Gerät) befinden. In diesem Fall ruft das Ereignis onDataChange() das Element aus dem Cache ab, bevor der ChildEventListener beendet ist, um alle untergeordneten Elemente vom Server zu synchronisieren !!

    – ThierryC

    26. Januar 2017 um 10:03 Uhr

  • Das funktioniert nur beim ersten Mal. Wenn Daten zwischengespeichert werden, wird zuerst onDataChange() aufgerufen

    – Klemenko

    6. September 2017 um 11:51 Uhr

  • Aber nicht ChildEventListener alle Kinder abrufen und nicht nur die hinzugefügten Kinder? Dann hätten Sie also 2 doppelte Sätze, einen von der SingleValueEventListener und ein anderer mit ChildEventListener.

    – James Heald

    5. Oktober 2017 um 14:52 Uhr


  • und mein Englisch ist etwas schwach 😀

    – Osma

    14. August 2016 um 17:37 Uhr

  • Wie werden Sie den Zuhörer danach los? Oder müssen wir uns darüber keine Gedanken machen?

    – Lion789

    3. November 2016 um 3:21 Uhr

  • und sorry für die späte Antwort … 😀

    – Osma

    8. November 2016 um 14:26 Uhr

  • Sie müssen die Listener immer entfernen, wenn Sie sie nicht benötigen. Der einzige Listener, den Sie nicht entfernen sollten, ist der addListenerForSingleValueEvent(), der automatisch entfernt wird, wenn das Ereignis ausgelöst wird

    – Benutzer2924714

    22. Dezember 2016 um 6:41 Uhr

  • Aber getChildrenCount() gibt die Anzahl der Kinder dieser Abfrage oder die Anzahl der Kinder des Knotens zurück? Denn wenn es die zweite wäre, würde diese Methode eine falsche Antwort geben, falls es einen Filter gibt.

    – Hugo Passos

    24. Oktober 2017 um 19:32 Uhr


1041280cookie-checkFinden Sie heraus, ob childEventListener auf Firebase das Laden aller Daten abgeschlossen hat

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy