2016-08-13 3 views
0

Ich bin eine Android-Anwendung von Rdbms zu Firebase und wie ein Neuling in Firebase Ich kämpfe mit einigen Abfragen.Firebase-Komplex "contain" Abfragen

Ich habe die unten DB in FB:

{ 
    "posts" : { 
    "-KNnbTHJGm83zpSELWwB" : { 
     ".priority" : "6gydj46kg0", 
     "branch" : "Branch", 
     "category" : "Categoria", 
     "expiration" : "24h", 
     "g" : "6gydj46kg0", 
     "l" : [ -23.5415083, -46.88642 ], 
     "photo" : "mPostPic_20160728192627.jpeg", 
     "price" : 10, 
     "priority" : 0, 
     "product" : "ipad", 
     "userKey" : "BNd8RP5qHoc0q7f9gn8cLjPy5Ux1", 
     "offerMessage": "Valido ate as 14:00 hs", 
     "likeCount": 0 
    } 
    } 
} 

in diesem Beitrag db ich ein Kind "Kategorie" haben. Ich habe eine Liste mit einigen Kategorien und ich muss nur die Beiträge abfragen, in denen die Wertkategorie in dieser Kategorienliste enthalten ist.

Ich versuchte. Start() und. End() aber funktioniert nicht.

Antwort

0

Sie suchen Firebase-Funktion equalTo. Sie können so etwas tun:

Query myQuery = myFirebaseReference.child("posts") 
    .orderByChild("category") 
    .equalTo("Categoria"); 

von Firebase auf Ihre Version kann je nach myFirebaseReference ein Firebase Objekt oder ein DatabaseReference sein.

1

Wenn Ihre Kriterienliste fortlaufend ist, können Sie sie mit startAt() und endAt() abrufen. Da Sie sagen, dass Sie das bereits versucht haben, haben Sie entweder etwas falsch gemacht (da Ihr Code in diesem Fall Hilfe zulässt) oder die Kriterien nicht aufeinander folgen.

Der letztere Fall ist wahrscheinlicher und bedeutet, dass Ihr Wunsch eine Abfrage ist, die SQL WHERE category IN ("Categoria", "Categorib", "Categoric") entspricht. Firebase hat keine solche Operation. Stattdessen müssen Sie mehrere Abfragen mit equalTo durchführen, um das Ergebnis zu erzielen.

Alternativ können Sie versuchen, die Daten anders zu modellieren, damit die Posts für die Kriterien auf einmal abgerufen werden können. Dies ist nicht immer möglich, aber wenn es so ist, folgt es dem in Query based on multiple where clauses in firebase

+1

beschriebenen Ansatz. Ja Frank. Genau danach suche ich. Ich versuche, Erfahrungen in Firebase zu sammeln, aber einige alte Konzepte sind komplizierter zu implementieren. Ich werde versuchen, das Datenmodell zu ändern und zu sehen, ob ich es schaffen kann. Ich halte sie auf dem Laufenden. –

Verwandte Themen