2017-09-08 35 views
0

Ich möchte eine Join-Operation auf 2 Knoten in der Firebase-Datenbank anwenden. Wie werde ich das tun?Lesen von Daten aus der Firebase-Datenbank

Es folgt die Struktur meiner Datenbank:

Ich habe zwei Knoten: Benutzerknoten und Bücher Knoten Ich möchte Knoten Bücher zu durchlaufen und für jedes Buch muss ich jeden Benutzernamen (in Benutzerknoten) finden Wer mag dieses Buch? Ich muss ein Array mit solchen Namen erstellen und es in der Recycler-Ansicht anzeigen. Gibt es eine Funktion, die ausgelöst wird, wenn alle Daten abgerufen werden? Hier ist mein Code:

DatabaseReference bookRef; 
bookRef.addOnSingleValueEventListener(new ValueEventListener){ 
    @Override 
    public void OnDataChanged(DataSnapshot datasnapshot){ 
    //I will get userReference fromdatasnapshot 
    DatabaseReference userReference ; 
    userReference.addOnSingleValueEventListener(new ValueEventListener){ 
     @Override 
     public void OnDataChanged(DataSnapshot datasnapshot){ 
       //Add Username in arrayList 

      } 
     } 
    } 

}

+0

verschachtelten Listener wird innerhalb einer Schleife aufgerufen werden, die auf Buchknoten iterieren wird –

Antwort

1

Sie einen HashMap<> zum Speichern der Größen wie Benutzer, die wie das Buch innerhalb des Buches Knoten hinzufügen können, dann haben Sie keine Notwendigkeit, durch den Benutzerknoten travrse Sie kann den Wert von wie Hashmap und setzen als Recycling-Ansicht oder was Sie wollen

+0

Danke für upvote Sie können auch Code dafür erhalten [Firebase Quickstart auf Github ] (https://github.com/firebase/quickstart-android/blob /master/database/app/src/main/java/com/google/firebase/quickstart/database/fragment/PostListFragment.java) auf line88 hoffe, das wird mehr helfen –