Ich habe eine DB-Struktur Firebase wie folgt:Serverseitige Filterung von Daten Firebase
{
"listings" : {
"-KOt8OUGkUphoMyqEXJ2" : {
"created" : 1470911323208,
"ends" : 1470911323209,
"make" : "LONDON TAXIS INT",
"model" : "TX4 BRONZE",
"status" : "For Sale",
},
"-KOt97_P8sJW7woED4aH" : {
"created" : 1470911515115,
"ends" : 1471775515000,
"make" : "NISSAN",
"model" : "QASHQAI N-TEC",
"status" : "For Sale",
},
"-KOt_BYYUEaXu_LNvnUv" : {
"created" : 1470918609414,
"ends" : 1471782609000,
"make" : "MAZDA",
"model" : "3 TS",
"status" : "For Sale",
}
}
}
Ich benutze GeoFire Schlüssel für Inserate in einem bestimmten Radius zu erhalten. Ich verwende dann observeSingleEventOfType, um die Auflistung für den Schlüssel zurückzugeben. Das alles funktioniert gut.
Allerdings möchte ich nur eine Liste zurückgeben, wenn der "Timestamp"> aktuelle Zeit "endet". Ich habe den folgenden Ansatz versucht:
geoQueryHandle = geoQuery.observeEventType(.KeyEntered, withBlock: {(key, location) in
let listingRef = self.ref.child("listings").child(key)
let now = Int(NSDate().timeIntervalSince1970 * 1000)
let query = listingRef.queryStartingAtValue(now, childKey: "ends")
query.observeSingleEventOfType(.Value, withBlock: {snapshot in
if let listing = Listing(snapshot: snapshot, location: location) {
//...populate my tableview
}
}
})
Kann mir jemand empfehlen, warum meine Abfrage nicht funktioniert?
Dank
Können Sie erweitern auf "funktioniert nicht"? Wird der withBlock nicht ausgeführt, oder erhalten Sie nicht den erwarteten Snapshot oder etwas anderes? –
Hallo Travis, sorry für das "funktioniert nicht" ... um zu verdeutlichen, dass der withBlock nicht ausgeführt wird. – AlexM