我如何在Geofire,Firebase中让用户靠近我的位置

时间:2018-07-29 02:01:07

标签: swift firebase location geofire

enter image description here使用此代码,我从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
            })

        }

    })

}

1 个答案:

答案 0 :(得分:0)

通过键保留您的GeoFire位置与所有内容分开,以引用其他附加数据,例如用户信息或帖子信息。由于混合使用静态数据和动态数据并不是存储数据的最有效方法。

在这里查看我的数据结构并查询:

Retrieving Keys From GeoFire within Radius in Swift