2017-06-10 4 views
0

Ich benutze Firebase DB und FirebaseListAdapter für die Anzeige und Filterung meiner Daten. Aber meine Daten filtern für EINEN Werte (idUser). Aber ich möchte Filterdaten für zwei Werte idUser und gut (zeigen Sie Daten, wo idUser = 2 und gut = wahr).
Kann ich es in Android versuchen?Wie Filtern von Daten für zwei Werte in FirebaseListAdapter?

firebaseListAdapter = new FirebaseListAdapter<Movie>(this, Movie.class, 
       R.layout.item_movie, FirebaseDatabase.getInstance().getReference() 
       .child("movies") 
       .orderByChild("idUser") 
       .equalTo("2")) 

Meine Datenbank:

{ 
    "movies": { 
     "1": { 
      "name": "comedy", 
      "idUser": "2", 
      "good": "true" 
     }, 
     "2": { 
      "name": "Horror", 
      "idUser": "2", 
      "good": "false" 
     }, 
     "3": { 
      "name": "comedy", 
      "idUser": "2", 
      "good": "true" 
     } 
     } 
    } 
+0

Als Mohamed sagte, können Sie nur eine 'orderBy' Klausel in Firebase-Datenbank haben. Möglicherweise können Sie die Werte, die Sie filtern möchten, in einer einzigen Eigenschaft kombinieren. Siehe meine Antwort hier für ein Beispiel: http://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in-firebase –

+0

@FrankvanPuffelen, DANKE! Ich sah es als Antwort! Aber, wenn ich mich nicht irre, ist es die Antwort für JavaScript. – Tomas

+0

Der Ansatz ist für jede Technologie gleich. –

Antwort

1

können Sie nur verwenden, um von einmal.

Die Antwort ist also, Ihr Schema zu ändern.

Siehe meine Antwort auf diese Frage multiple properties

+0

Sie meinen, dass ich neues Feld "idUser_good = 2_true" hinzufügen muss und Wert dieses Feldes erhalten? – Tomas

+0

ja. und es so bekommen '.orderByChild (" idUser_good ") . EqualTo (" 2_true "))' –