GFCircleQuery不会返回任何结果

时间:2017-05-05 12:55:27

标签: swift firebase firebase-realtime-database location geofire

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

我的结构数据

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

1 个答案:

答案 0 :(得分: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()
                }