2017-05-05 121 views
0

我对iOS使用Geofire。我遇到以下问题,我使用Geofire获取当前用户旁边的卡片和用户。对于卡片,结果是正确的,但对于用户,我没有得到任何结果,但Firebase数据库中的数据结构与存储卡片和用户的位置相同。请告诉我如何解决这个问题?GFCircleQuery不返回任何结果

我的结构数据

"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" : [ ******, -**** ] 
    }, 

回答

0

我没有正确地通过添加额外的属性,以它的模型中使用geofire。现在我只添加CLLocation,它适用于我。

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() 
       }