我有一个iOS Swift项目正在运行PHP后端。该应用获取用户位置(lng
& lat
),发布到API(后端),并接收数据。数据是用户位置附近的位置列表。
现在,我转到Firebase
。数据结构如下图所示:
而且,我尝试从Firebase获取数据的代码
让radius:Double = 0.7
let lng_min = lng - radius/abs(cos(deg2rad(lat))*69)
let lng_max = lng + radius/abs(cos(deg2rad(lat))*69)
let lat_min = lat - (radius/69)
let lat_max = lat + (radius/69)
ref = FIRDatabase.database().reference()
ref.child("v1")
.queryOrderedByChild("lng")
.queryStartingAtValue(lng_min)
.queryEndingAtValue(lng_max)
.queryOrderedByChild("lat")
.queryStartingAtValue(lat_min)
.queryEndingAtValue(lat_max)
.observeEventType(.Value, withBlock: { snapshot in
print(snapshot.childrenCount)
})
应用程序因错误运行而崩溃:无法使用多个queryOrderedBy调用!
如何查询Firebase,如下面的SQL查询:
SELECT lat, lng FROM `table`
WHERE (lng BETWEEN lng_min AND lng_max) //~> lng_min <= lng <= lng_max
AND (lat BETWEEN lat_min AND lat_max)
先谢谢!