2017-03-15 4 views
0

Ich habe eine Liste von Geschäften wie folgt:GeoFire Abfrage kam nicht zurück Ergebnis

"store" : { 
"2" : { 
"address" : "amman", 
"ctime" : "17:05:00", 
"g" : "9q8yyxfgs8", 
"id" : "11", 
"l" : [ 31.9453666, 35.9283716 ], 
"name" : "Kaluti", 
"otime" : "00:00:00", 
"phone" : "0795080034", 
"userId" : "4" 
}, 
"7" : { 
"address" : "amman", 
"ctime" : "01:00:00", 
"g" : "9q8yyxfgs8", 
"id" : "7", 
"l" : [ 31.9453666, 35.9283716 ], 
"name" : "Zalloum33", 
"otime" : "05:00:00", 
"phone" : "0795080034", 
"userId" : "2" 
}, 
"11" : { 
"address" : "amman", 
"ctime" : "17:05:00", 
"g" : "9q8yyxfgs8", 
"id" : "11", 
"l" : [ 31.9453666, 35.9283716 ], 
"name" : "Kaluti", 
"otime" : "00:00:00", 
"phone" : "0795080034", 
"userId" : "4" 
}, 
"12" : { 
"address" : "asd", 
"ctime" : "22:00:00", 
"g" : "9q8yyxfgs8", 
"id" : "12", 
"l" : [ 37.7922, -122.4056973 ], 
"name" : "Amam", 
"otime" : "10:00:00", 
"phone" : "0795126776", 
"userId" : "4" 
}, 
"19" : { 
".priority" : "9q8yyxfgs8", 
"g" : "9q8yyxfgs8", 
"id" : "10", 
"l" : [ 37.7922, -122.4056973 ], 
"name" : "ahmad" 
} 
} 

wenn ich versuche, diesen Ort mit diesem Code holen die Abfrage keinen Wert zurückkehrte

let center = CLLocation(latitude: 31.97375, longitude: 35.872316) 

if let circleQuery = geoFire?.query(at: center, withRadius: 1.0) { 
    _ = circleQuery.observe(.keyEntered) { (key, location) in 
     print("Key '\(key)' entered the search area and is at location '\(location)'") 
    } 

    circleQuery.observeReady{ 
     print("All initial data has been loaded and events have been fired for circle query!") 
    } 
} 

aber wenn ich versuche, den gleichen Code zu verwenden und nur die CLLocation ändern mit

let center = CLLocation(latitude: 37.7832889, longitude: -122.4056973) 

es die Rückgabedaten.

bitte beraten Sie mich, wo ist das Problem?

Antwort

0

Sie müssen den Radius nach Ihren Bedürfnissen anpassen. In Ihrem Beispiel haben Sie einen Radius von 1,0 Metern, der die Objekte nur innerhalb eines Abstands von 1 Meter zu Ihrem Mittelpunkt zurückgibt. Versuchen zu erhöhen es auf 500,0 Meter, wie ich im Beispiel unten getan habe:

let center = CLLocation(latitude: 31.97375, longitude: 35.872316) 

if let circleQuery = geoFire?.query(at: center, withRadius: 500.0) { 
    _ = circleQuery.observe(.keyEntered) { (key, location) in 
     print("Key '\(key)' entered the search area and is at location '\(location)'") 
    } 

    circleQuery.observeReady{ 
     print("All initial data has been loaded and events have been fired for circle query!") 
    } 
} 
+0

Vielen Dank für Ihre Beratung, ich versuchte es, wie Sie geschickt, aber ich habe immer noch das gleiche Problem – Alkalouti

+0

@Alkalouti, wenn Sie "center lassen verwenden = CLLocation (Breitengrad: 31.9453666, Längengrad: 35.9283716) "Haben Sie drei Ergebnisse? –

+0

Nein, ich habe kein Ergebnis erhalten, aber wenn ich late center = CLLocation (latitude: 37.7832889, longitude: -122.4056973) hinzufüge, gibt es zwei Ergebnisse zurück – Alkalouti

Verwandte Themen