2016-11-18 2 views
1

Ich habe die folgende Datenbank auf Firebase: firebase databaseSuche nach einem bestimmten Wert bei allen Kindern in einer Liste in Firebase

ich eine Suche auf Benutzer zurückkehren will, ob es eine mit dem wahren Typ ist.

mDatabaseReference.child("users").addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      if (dataSnapshot.hasChild("type")) {//I need the verification here. 
       //action 
      } else { 
       //action 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Log.w(TAG, "getUser:onCancelled", databaseError.toException()); 
     } 
    }); 

Vielen Dank im Voraus für Ihre Aufmerksamkeit

Antwort

2

Was Sie suchen, ist eine gefilterte quer y wie folgt aus:

Query filterQuery = databaseReference.orderByChild("type").equalTo(true); 

Sie auch einen Blick auf this Antwort haben kann Weitere Beispiele zum Filtern von Daten finden Sie unter these docs.

Lassen Sie mich wissen, ob dies Ihnen in die richtige Richtung zeigt.

EDIT:

Sie für null, indem sie diese Bedingung in eine in if-Anweisung überprüfen OnDataChange

dataSnapshot.getValue() != null 
+0

Ja, ich diesen Filter bin mit der Abfrage übergeben mein Adapter. Aber bevor ich die Anfrage dorthin absende, muss ich wissen, ob die Rückgabe nicht leer oder null ist. Wie überprüfe ich das? –

+0

Überprüfen Sie die bearbeitete Antwort, die Sie ausführen müssen, um in datasnapshot auf Null zu prüfen. –

Verwandte Themen