Ich habe an vielen Stellen Datenextraktionscode ausprobiert, aber überall bekomme ich Informationen in einer einfachen Liste. Da die Struktur meines JSON komplex ist und ich es jetzt nicht ändern kann, bitte helfen Sie mir beim Abrufen von Daten aus der Firebase-Datenbank. Bitte helfen Sie mir, da ich den Firebase-Code nicht verstehen kann . Folgendes ist meine Code- und JSON-Datenbank:
CategoryModel.xml
%Vor%CardviewActivity: Früher habe ich eine Asset-Datei verwendet, aber jetzt möchte ich Daten von Firebase abrufen, deren Code mehrdeutig online ist
%Vor%RecyclerViewAdapter:
%Vor%Die einzige Möglichkeit, Daten von der Firebase-Datenbank abzurufen, ist ein ValueEventListener . Firebase arbeitet mit asynchronen Aufrufen, sodass Sie die Funktion nicht aufrufen, die Daten abrufen und verwenden können. Sie müssen einen ValueEventListener in einer bestimmten Datenbankreferenz festlegen.
Für Ihr tatsächliches Problem müssen Sie ein Array erstellen, die Firebase-Referenz festlegen, den ValueEventListener hinzufügen und innerhalb jedes Arrays der CategoryList im Array hinzufügen. Schließlich können Sie innerhalb des ValueEventListener Ihr CategoryModel mit dem Array der CategoryList als Parameter erstellen und Ihre UI aktualisieren, um die Daten in CategoryModel anzuzeigen:
%Vor%Damit dies funktioniert, muss Ihre CategoryList-Klasse alle Setter ihrer Mitglieder implementieren, so dass "datasnapshot.getValue ()" funktioniert. Ein anderer Ansatz kann sein, einen Konstruktor in CategoryList zu erstellen, der einen DataSnapshot auf diese Weise wiedergibt:
%Vor%Wenn Sie den Konstruktor erstellen, müssen Sie diese Zeile ersetzen:
%Vor%mit diesem:
%Vor%Sie können sehen, dass ich GenericTypeIndicator für die Arbeit mit Sammlungen verwende Für Daten ist dies eine Hilfsklasse, die Firebase für die Arbeit mit Listen, Maps, Sets oder einer anderen Collection bereitstellt.
Tags und Links android firebase json firebase-database