在多个维度中构建Firebase数据

时间:2014-08-21 17:39:08

标签: firebase

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是否有计划支持多维度的事件索引(以及对这些事件的查询框架)?

谢谢!

1 个答案:

答案 0 :(得分:3)

您描述的具体用例,位置,由GeoFire library处理。看看它,它会为你节省很多时间。

更一般的答案涉及到在NoSql存储中工作的一些技巧。通常,您需要找到一种方法将数据解析为层次结构。 GeoFire通过将您的位置数据解析为geohash来完成任务。您可以在Firebase blog entry上了解有关如何构建GeoFire的更多信息。