2014-09-20 71 views
0

我想用查询查询我的数据,该查询将返回一个半径(geofire可以找到的所有内容),但也在日期时间窗口内。我可以在单个查询中使用Firebase的优先级GeoFire吗?

此刻,我将日期时间作为优先级存储,因此查询数组需要2个优先级数字(对应于开始/结束日期时间)的数据非常容易。

将我的数据放入GeoFire阵列,然后查询它以获取半径也很容易。

我可以结合那两个吗?以一种简单而不是太难以理解的方式?

干杯

+0

每个节点都有一个.priority。如果您可以找到将datetime和geohashes组合成单个.priority的方法,则可以查询其组合。但在你的用例中,你可以将两者结合起来看起来不太可能。 – 2014-09-20 10:52:14

回答

1

不适用于单个查询。您必须过滤客户端,或者在多个阶段进行查询。

这是因为:

解决这个问题的最简单方法是做额外的过滤客户端。如果带宽影响开始引发问题,请将数据分区(例如按月分组),并分多个阶段进行。

+0

嘿珍妮谢谢你的回答。我看到startWith将名字和优先级都作为参数。这是否意味着我可以使用这些作为主要和次要索引,从而基于它们进行查询?例如,用他们的时间戳命名他们,并用他们的geohash优先考虑他们 - >然后使用startWith(sometimestamp,somegeohash)等 – STE 2014-10-01 00:28:34

+1

是的,我想你可以。唯一的警告可能是优先权不保证是唯一的。 – mimming 2014-10-01 02:50:11

+0

谢谢:)如果您想将其添加到您的答案,我可以接受它作为我的问题的答案 – STE 2014-10-10 23:58:44