Ich habe eine Datenbank aufgebaut, wie Feuerbasis:Firebase Intervall kombinierte Abfrage
-users
-[userID from the account]
-[interval key generated automatically with push]
-start: timestamp
-end: timestamp
-color: black
-[interval key]
-start: timestamp
-end: timestamp
-color: red
-[interval key]
-start: timestamp
-end: timestamp
-color: green
-[userID2 from the account]
-[interval key]
-start: timestamp
-end: timestamp
-color: black
-[interval key]
-start: timestamp
-end: timestamp
-color: white
-[interval key]
-start: timestamp
-end: timestamp
-color: red
mit Android Ich verstehe nicht, wie einige kombinierte Abfrage zu machen.
Wenn ich habe:
long start = 1494637200000;
long end = 1494640800000;
und:
DatabaseReference userRef = dbRef.child("users").child(uid);
Wenn ich nicht orderByChild() mehr als 1 Mal verwenden:
1) Wie kann ich von der get Datenbank alle Intervalle, die mit dem start
und dem end
überlappen?
Sql:
select * from [userID] where start + " < " + 1494640800000 + " AND " + end + " > " + 1494637200000
2) Wie kann ich aus der Datenbank erhalten alle Intervalle, die mit dem start
und der end
überlappen, sondern nur mit der Farbe „black
“?
Sql:
select * from [userID] where start + " < " + 1494640800000 + " AND " + end + " > " + 1494637200000 AND color = "black"
(Ich nehme Antworten in verschiedenen Sprachen, nur um es verständlich machen)
Ich habe dieses Tutorial schon einmal gesehen, die einzige Methode, um von 2-3 Kindern abzufragen, sie in einem Wert getrennt durch ein Sonderzeichen zu kombinieren. Es ist der einzige Weg ? – 4bottiglie
Ja, das ist richtig. Dies ist eine gängige Praxis in Firebase. –
Wenn ich sie nach einer gewissen Zeit durch andere 3 Parameter abfragen möchte, sollte ich alle Intervalle mit einem neuen Wert aktualisieren? Ist es Ihrer Meinung nach teurer, sie bei jedem Kunden einzeln zu filtern? – 4bottiglie