Firebase非常适合使用startAt()和endAt()在单个维度中构建数据。
但是,我有一些情况,在多个维度中构建数据非常有用。以下是几个例子:
示例#1:我想查找地理围栏内的所有数据;也就是说,在两个范围内,一个用于纬度,一个用于经度。 lat_min - > lat_max和lon_min - > lon_max。
示例#2:我在外太空设置游戏,我需要知道在特定时间范围内在3空间块中发生的所有事件。这样就变成了一个四维块:x_min - > x_max,y_min - > y_max,z_min - > z_max和time_min - > time_max。
现在有没有办法在Firebase中执行此操作?如果没有,Firebase是否有计划支持多维度的事件索引(以及对这些事件的查询框架)?
谢谢!
答案 0 :(得分:3)
您描述的具体用例,位置,由GeoFire library处理。看看它,它会为你节省很多时间。
更一般的答案涉及到在NoSql存储中工作的一些技巧。通常,您需要找到一种方法将数据解析为层次结构。 GeoFire通过将您的位置数据解析为geohash来完成任务。您可以在Firebase blog entry上了解有关如何构建GeoFire的更多信息。