我正在尝试在没有GeoFire的情况下在Firebase中实施基于位置的查询(因为上次更新是在6个月之前似乎已弃用)
无论如何,我无法弄清楚这一点。
它没有解雇听众。 当它没有开始或结束时它起作用。
查询如下:(仅使用谷歌纵横测试)
// Testing, only doing longtude atm.
geoFlamesFIRReference
.queryStarting(atValue: coordinates!.longitude - radius, childKey: "longtitude")
.queryEnding(atValue: coordinates!.longitude + radius, childKey: "longtitude")
.queryLimited(toFirst: UInt(Constants.LIMIT_OF_FLAMES_ON_MAP))
.observe(.value, with: { snapshot in
print("New location?")
})
然后我的一些数据的例子:
答案 0 :(得分:1)
您使用错误的语法进行查询:
geoFlamesFIRReference
.queryOrder(byChild: "longtitude")
.queryStarting(atValue: coordinates!.longitude - radius)
.queryEnding(atValue: coordinates!.longitude + radius)
请注意,如果您还希望按纬度筛选Firebase queries can only contain a single orderBy
clause,则会遇到问题。
GeoFire使用geohashes来解决此限制。因此,如果您打算不使用该库,则必须阅读这些库。