2017-05-05 11 views
0

Ich verwende Geofire für iOS. Ich habe das folgende Problem, ich benutze Geofire, um die Karten und Benutzer, die neben dem aktuellen Benutzer sind, zu erhalten. Für Karten ist das Ergebnis korrekt, aber für Benutzer bekomme ich keine Ergebnisse, obwohl die Datenstruktur in der Firebase-Datenbank dieselbe ist, um den Speicherort von Karten und Benutzern zu speichern. Bitte sagen Sie mir, wie ich dieses Problem lösen kann?GFCircleQuery gibt kein Ergebnis zurück

Meine Strukturdaten

"cardLocation" : { 
    "-KjLxK0q39JnT2MZEalB" : { 
    ".priority" : "v17wefy8z", 
    "g" : "v17wefy8z", 
    "l" : [ *****, ****** ] 
    }, 
    "-KjM7_5sPkoruwoTvRzR" : { 
    ".priority" : "9q5c2ypf3", 
    "g" : "9q5c2ypf3", 
    "l" : [ ******, -****** ] 
    }, 
    "-KjNDq8nQ2Ffjr9M_1a9" : { 
    ".priority" : "9q59x2vc6", 
    "g" : "9q59x2vc6", 
    "l" : [ *******, -***** ] 
    } 
}, 

"userLocations" : { 
    "1Cix149ThIOG1ULPVjyy0LyTxbe2" : { 
    ".priority" : "87zc0d2j5", 
    "g" : "87zc0d2j5", 
    "l" : [ ******, -**** ] 
    }, 

Antwort

0

ich durch Hinzufügen zusätzlicher Eigenschaft zu sein Modell verwenden geofire nicht korrekt war. Jetzt füge ich nur CLLocation hinzu und es funktioniert für mich.

let geofireRef = Database.database().reference().child(MainGateways.cardLocation.rawValue) 
       guard let geoFire = GeoFire(firebaseRef: geofireRef) else { return } 
       dispatchGroup.enter() 
       geoFire.setLocation(cardLocation, forKey: cardModelRef.key) { (error) in 
        commonError = error 
        dispatchGroup.leave() 
       } 
Verwandte Themen