Получите всех пользователей в вашей зоне с помощью GeoFire 4 (Firebase 7) на Swift 5

У меня уже есть собственное местоположение пользователя с помощью CL Location Manager. Это местоположение также уже есть в базе данных Firebase по адресу koordinaten. Теперь я хочу взять координату пользователя текущего пользователя и найти пользователей, которые находятся в той же области. Если да, то они должны получить пин-код на карте текущего пользователя.

Поэтому у меня есть этот код:

let db = Firestore.firestore()
db.collection("users").whereField("uid", isEqualTo: Auth.auth().currentUser?.uid ?? "x")
    .getDocuments { (querySnapshot, err) in
        
        let location = querySnapshot!.documents[0].get("koordinaten")
        
        let geofire = GeoFire(firebaseRef: querySnapshot!.documents[0].get("koordinaten") as! DatabaseReference)
        
        let center = CLLocation(coder: location as! NSCoder)
        
        let circleQuery = geofire.query(at: center!, withRadius: 5000000000000000000000000000);
        
        
        var queryHandle = circleQuery.observe(.keyEntered) { (key: String!, location: CLLocation!) in
            
            print("Key '\(String(describing: key))' entered the search area and is at location '\(String(describing: location))'")
            
            let newPin = MKPointAnnotation()
            newPin.coordinate = location.coordinate
            self.MapView.addAnnotation(newPin)
        }
}

Но на самом деле это не работает так, как должно. Кто-нибудь знает, как это решить? Я знаю, что есть похожие вопросы... но код, например, из Получение ключей из GeoFire в радиусе в Swift не работает в моем приложении? раздражающий.


person Community    schedule 05.02.2021    source источник
comment
Итак, каков результат? Будут ли выполнены оба закрытия? Возможно, добавьте еще несколько операторов печати, чтобы узнать, что называется.   -  person Andreas Oetjen    schedule 05.02.2021
comment
Вывод: ‹GFCircleQuery: 0x600002cec690› ‹GFCircleQuery: 0x600002cec690›   -  person    schedule 05.02.2021
comment
Знаете ли вы, что это такое?   -  person    schedule 07.02.2021
comment
Я не понимаю, что вы имеете в виду под выводом? Есть только один оператор печати, и он печатает что-то вроде «Ключ... вошел в область поиска и находится в нужном месте».... Будет ли это выводиться или где что выводить?   -  person Andreas Oetjen    schedule 07.02.2021
comment
Как я понимаю, вывод должен печатать ключ другого пользователя и местоположение другого пользователя... но он печатает только шестнадцатеричный GeoFire   -  person    schedule 08.02.2021
comment
Я понимаю. Так что вывод не от вас, т.е. circleQuery.observe замыкание вроде не вызывает. Пожалуйста, поставьте точку останова на строку let location = ... и на строку с оператором print и проверьте, выполняются ли они.   -  person Andreas Oetjen    schedule 08.02.2021
comment
нет местоположения не печатается.... печать(местоположение!)   -  person    schedule 10.02.2021