0
我在Swift中构建了一个应用程序,用户(可以发布他们在街上见到的事件的位置,每个事件的生命周期为45分钟,然后它不会在地图上显示。该阈值改进GeoFire查询性能 - Firebase
我建我的Json树像这样(地点和事件共享相同的ID - 在这里没有代表):
firebaseapp {
locations {
g
l {
0: "latitude"
1: "longitude"
}
}
events {
timestamp: "UTC timestamp"
description: "my description"
user: "id of user"
}
users {
// User data
}
}
我查询对应的区域显示在屏幕上的所有位置,然后我查询不到45分钟前发生的事件,我这样做:
regionQuery = geoFire.queryWithRegion(mapView.region)
regionQuery.observeEventType(.KeyEntered, withBlock: { (key: String!, location: CLLocation!) in
// I query my events based on the key here
})
这个方法的问题是,对于一个特定的区域,我查询过去发生的事件的所有位置(可以是一个LOT),然后我查询那些发生少于45分钟的事件之前使用tradionnal Firebase查询。
有没有更好的解决方案,我的问题,因为恐怕我会很快穿越带宽的阈值,如果每次用户移动地图,显示的区域的所有位置都加载...
嗨,弗兰克,谢谢你的回答!有没有办法将最近到历史服务器端的位置与Firebase转移?或者我应该做客户端? – Viro
没有“移动”API。除非你有非常不寻常的情况,否则不应该需要。复制/粘贴/删除对于大多数JSON大小来说足够快。 –
对,我要在客户端编写一些逻辑将位置从一个分支移动到另一个分支。再次感谢弗兰克 – Viro