我怎样才能让用户靠近我在 geofire,Firebase 中的位置
How can i get user nearby my location in geofire,Firebase
使用这段代码,我只能从 Geolocs 获得一个值,只有键和位置,而不是附近的 location.What 是错误的
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
})
}
})
}
将您的 GeoFire Locations 与所有内容分开,并使用一个键来引用其他附加数据,例如用户信息或 post 信息。因为混合静态和动态数据不是存储数据的最有效方式。
在这里查看我的数据结构和查询:
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
})
}
})
}
将您的 GeoFire Locations 与所有内容分开,并使用一个键来引用其他附加数据,例如用户信息或 post 信息。因为混合静态和动态数据不是存储数据的最有效方式。
在这里查看我的数据结构和查询: