2016-08-13 1 views
0

Dies ist mein JSON-Baum in der Firebase Realtime-Datenbank. Ich möchte nur alle Elemente unter questions iterieren und durchlesen. Ich denke, ich mache etwas Dummes falsch.Einfaches Lesen von untergeordneten Knoten aus der Firebase-DB funktioniert nicht

Unter der "Meine App" - Ich habe eine "Fragen" Zweig und speichern eine Reihe von Daten darunter. Unten ist der Baum und mein Code. Im Code zeige ich den Teil auf, der abstürzt. Unten rot eingekreist, versuche ich zu lesen.

enter image description here

public void readfromFireDB() { 

    FirebaseDatabase database = FirebaseDatabase.getInstance(); 
    DatabaseReference myRef = database.getReference().child("questions"); 

    // Read from the database 
    myRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

      **THIS IS THE ERROR, ques comes back as NULL** 
      Question ques = dataSnapshot.getValue(Question.class); 

      String key = dataSnapshot.getKey(); 

     } 

     @Override 
     public void onCancelled(DatabaseError error) { 
     } 
    }); 

} 

Diese Ausgabe: ques in onDataChanged() kommt zurück als Nullreferenz. Kann ich nicht auf die Kinder unter questions richtig zugreifen?

Antwort

2

Mit einem ValueEventListener greifen Sie auf die Liste der Fragen, keine individuelle Frage.

auf jede einzelne Frage zugreifen, werden Sie über die Snapshot-Schleife müssen:

public void onDataChange(DataSnapshot dataSnapshot) { 
    for (DataSnapshot questionSnapshot: dataSnapshot.getChildren()) { 
     Question ques = questionSnapshot.getValue(Question.class); 
     String key = questionSnapshot.getKey(); 
    } 
} 
+0

Danke, das funktioniert. Ich werde die Dokumentation noch einmal klar lesen. – user1406716

Verwandte Themen