GFCircleQuery не возвращает никакого результата

Я использую Geofire для iOS. Я столкнулся со следующей проблемой, я использую Geofire для получения карт и пользователей, которые находятся рядом с текущим пользователем. Для карт результат правильный, а вот для пользователей результатов не получаю, хотя структура данных в Firebase Database одинаковая для хранения местоположения карт и пользователей. Подскажите пожалуйста, как мне решить эту проблему?

Мои структурные данные

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

person Alexander Khitev    schedule 05.05.2017    source источник


Ответы (1)


Я не правильно использовал 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()
                }
person Alexander Khitev    schedule 31.07.2017