2017-05-20 4 views
0

Ich möchte Daten von Firebase abrufen. Die Abrufdaten sollten sichtbar sein und die entsprechende Eigenschaft "vis" und "true" haben. Es ist eine ziemlich einfache Aufgabe. Aber ich mag auch bestimmte Reihenfolge, so am Anfang Kind mit der Eigenschaft „po“ gleich 1, als 2 gehen sollte, und etc.Kann ich Abfragen basierend auf zwei Eigenschaften abrufen?

Es ist meine aktuelle Codezeile

mQuery = mDatabaseReference.orderByChild("vis").equalTo("true"); 

Die Datenstruktur sieht wie:

common 
code:"common" 
name:"Common" 
pos:"5" 
vis:"false" 

court 
code: "court" 
name: "Court reform" 
pos: "2" 
vis: "false" 

june12 
code: "june12" 
name: "12 June" 
pos: "1" 
vis: "true" 
+0

Sie können die beiden Werte, die Sie verwenden möchten, in einer einzigen Eigenschaft kombinieren, d. H. 'Vis_pos:" true_1 "'. Dann können Sie diese Eigenschaft anordnen/filtern und die gewünschten Ergebnisse erhalten. Siehe meine Antwort hier: http://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in-firebase –

+0

Danke Frank! Ich habe diese Frage schon einmal gesehen. Ich hatte eine andere Aufgabe. Ich möchte Daten abrufen, die den Wert "true" für die Eigenschaften "vis" haben, und auf dieselbe Art sollten diese Abrufdaten in aufsteigender Reihenfolge angezeigt werden. Deshalb verwende ich eine andere Eigenschaft "pos". Ich fand einfache Lösung: Ich löschte Eigenschaft "vis" und änderte die Codezeile in meiner App. mQuery = mDatabaseReference.orderByChild ("pos"). StartAt ("100"); Also danach, ich nur Daten abrufen, die bei "100" beginnen. –

Antwort

0

Die kurze Antwort ist nein. Aus der Dokumentation:

können Sie nur ein Order-by-Methode zu einem Zeitpunkt verwenden. Durch mehrfaches Aufrufen einer Order-by-Methode in derselben Abfrage wird ein Fehler ausgegeben. https://firebase.google.com/docs/database/cpp/retrieve-data#sorting_and_filtering_data

Sie können den Bereich der Daten begrenzen, die eine Filterfunktion: https://firebase.google.com/docs/database/cpp/retrieve-data#filtering_data

unbedingt die Firebase for SQL devs Serie zu sehen. Genauer gesagt, das Video auf denormalization (# 6) und die Follow-up-Multi-Path-Updates (# 7). Multipath Updates können serverseitig mit Cloud function triggers durchgeführt werden.

Verwandte Themen