Как я могу получить пользователя рядом с моим местоположением в geofire, Firebase

введите описание изображения здесьС помощью этого кода я получаю только одно значение от Geolocs, просто ключ и местоположение, а не соседнее местоположение. Что с ним не так

var geoFireRef: DatabaseReference?
    var geoFire: GeoFire?
    var myQuery: GFQuery?


func Geofire() {

        geoFireRef = Database.database().reference().child("Geolocs")
    geoFire = GeoFire(firebaseRef: geoFireRef!)
        self.geoFire?.setLocation(currentLocation!, forKey:Auth.auth().currentUser!.uid)

    myQuery = geoFire?.query(at: currentLocation!, withRadius: 100)

    myQuery?.observe(.keyEntered, with: { (key, location) in


        if key != Auth.auth().currentUser?.uid
        {
            let ref = Database.database().reference().child("Users").child(key)

            ref.observeSingleEvent(of: .value, with: { (snapshot) in
                let id = snapshot.key
            })

        }

    })

}

person jagdeep singh    schedule 29.07.2018    source источник
comment
Вопрос немного неясен, и недостаточно данных, чтобы действительно понять проблему; постоянно ссылайтесь на переменные вашего класса (self.geoFire и geoFire), и я не уверен, что есть причина, по которой они не являются просто операторами let, как в let geoFireRef = ..., currentLocation не определен, поэтому мы не Если вы не знаете, что это такое, не храните координаты в узле пользователей, поскольку для этого предназначен узел геолокации. Кроме того, проверьте оба ответа на этот вопрос   -  person Jay    schedule 29.07.2018
comment
О, и, судя по вашему снимку экрана, у вас есть только одно местоположение для пользователя, и это пользователь (администратор). Если есть больше данных, вы, вероятно, должны включить их в виде ТЕКСТА, пожалуйста, без скриншотов. Пожалуйста, не включайте изображения в свои вопросы. Включите код и структуры в виде текста. Чтобы получить структуру Firebase, используйте консоль Firebase->Export JSON и скопируйте и вставьте фрагмент вашей структуры. См. изображения и ссылки являются вредоносными   -  person Jay    schedule 29.07.2018
comment
Ссылка на ваш первый комментарий очень помогает мне понять реальную проблему, с которой я столкнулся, спасибо.   -  person jagdeep singh    schedule 30.07.2018


Ответы (1)


Держите свои местоположения GeoFire отдельно от всего с помощью ключа для ссылки на другие дополнительные данные, например. информация о пользователе или сообщение. Поскольку смешивание статических и динамических данных было бы не самым эффективным способом хранения данных.

См. мою структуру данных и запрос здесь:

Получение ключей из GeoFire в пределах радиуса в Swift

person David Lintin    schedule 29.07.2018
comment
Я не понял твоей мысли. Вы имеете в виду, что у меня есть отдельное местоположение и я делаю запрос в другой функции/классе??? - person jagdeep singh; 29.07.2018
comment
Да. Добавьте свое местоположение с ключом .uid, который вы делаете. Но храните всю остальную информацию о пользователе отдельно. затем, когда вы запустите запрос, все, что вы получите, - это набор ключей, затем вы сможете сослаться на них все и получить дополнительную информацию. - person David Lintin; 29.07.2018
comment
Да, но я не получил, я получаю только один ключ, который является моим текущим идентификатором пользователя, и я установил его в Geolocs. - person jagdeep singh; 29.07.2018