2016-10-30 3 views
0

bekommen Wie kann ich dieWie kann ich den gesuchten Wert von diesem Feuerbasis DataSnapshot

"Dancing in the dark"

von dieser Momentaufnahme, wenn der Snapshot existiert nicht :? Ich denke, es muss irgendwo im Schnappschuss gespeichert werden. Bitte lesen Sie Inline-Code kommentiert ..

private void addListenerForSingleValueEvent(String streetAddress, StringBuilder targetAddress){ 

     DatabaseReference firebase = FirebaseDatabase.getInstance().getReference(); 
     firebase.child("catalog/trax").orderByChild("namn").equalTo("Dancing in the dark") 
       .addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot snapshot) { 
       if (snapshot.exists()) { 
       // do sowm work on existing data 
       } else { 
       // How can I get the "Dancing in the dark" from the snapshot? 
       } 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 
       Toast.makeText(Application.getInstance(), databaseError.getMessage(), Toast.LENGTH_LONG).show(); 
      } 
     }); 

}

Antwort

0

Wenn Sie eine Abfrage für die Datenbank Firebase ausführen, da möglicherweise mehrere Ergebnisse sein. Der Snapshot enthält also eine Liste dieser Ergebnisse. Selbst wenn nur ein Ergebnis vorhanden ist, enthält der Snapshot eine Liste mit einem Ergebnis. Wenn Sie ein value Ereignis anhören, erhalten Sie alle übereinstimmenden Ergebnisse in einem Snapshot, so dass Sie über die Kinder iterieren müssen.

DatabaseReference firebase = FirebaseDatabase.getInstance().getReference(); 
    firebase.child("catalog/trax").orderByChild("namn").equalTo("Dancing in the dark") 
      .addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot snapshot) { 
      for (DataSnapshot item: snapshot.getChildren()) { 
       // In this loop item is the snapshot of a single item. 
       // This means we can get the namm of the item 
       System.out.println(item.child("namm").getValue(String.class)); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Toast.makeText(Application.getInstance(), databaseError.getMessage(), Toast.LENGTH_LONG).show(); 
     } 
    }); 
+0

Lassen Sie uns sagen, dass '! Snapshot.exists()', gibt es nichts in der 'snapshot', kann ich immer noch aus dem' snapshot' Extrakt, was ich war auf der Suche, die Frage :, '(" Katalog /trax").orderByChild("namn").equalTo("Dancing in the dark ") Oder vielleicht kann ich das als Feld in der Klasse speichern, das funktioniert aber trotzdem –

Verwandte Themen