gpt4 book ai didi

ios - 如何使用 Swift 在 Firebase 中查询最近的用户?

转载 作者:搜寻专家 更新时间:2023-11-01 05:56:20 25 4
gpt4 key购买 nike

我想找到离我最近的用户。 (例如长达 5 公里)我在 firebase 数据库中的节点如下结构,

+ users
+ user_id0
- latitude: _
- longitude: _

有没有办法在那个半径内获得准确的用户。否则,我应该使用 CLLocation distance 方法检查每个用户是否离我最近。

最佳答案

我强烈推荐使用 Geofire对于这样的事情。

要设置它,您的数据结构会略有变化。您仍然可以存储用户的纬度/经度,但您还将创建一个名为 users_locations

的新 Firebase 表

您的 users_locations 表将通过 Geofire 填充,看起来像这样

users_locations
user_id0:
g: 5pf666y
l:
0: 40.00000
1: -74.00000

通常,这就是您在 Geofire 中存储位置的方式,但您可以将其设置为在创建/更新用户对象时保存位置。

let geofireRef = FIRDatabase.database().reference().child("users_locations")
let geoFire = GeoFire(firebaseRef: geofireRef)
geoFire.setLocation(CLLocation(latitude: lat, longitude: lng), forKey: "user_id0")

当您将位置保存在 users_locations 中后,您可以使用 GFQuery 查询特定范围内的所有用户。

let center = CLLocation(latitude: yourLat, longitude: yourLong)
var circleQuery = geoFire.queryAtLocation(center, withRadius: 5)

var queryHandle = circleQuery.observeEventType(.KeyEntered, withBlock: { (key: String!, location: CLLocation!) in
println("Key '\(key)' entered the search area and is at location '\(location)'")
})

关于ios - 如何使用 Swift 在 Firebase 中查询最近的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42091994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com