【问题标题】:Can I use firebase's GeoFire with Priority in a single query?我可以在单个查询中使用 Firebase 的 GeoFire 优先级吗?
【发布时间】:2014-09-20 09:55:19
【问题描述】:

我想使用一个查询来查询我的数据,该查询将返回半径范围内的所有内容(geofire 可以找到它),但也可以在日期时间窗口内返回。

目前我将日期时间存储为优先级,因此很容易查询数组以获取 2 个优先级数字之间的数据(对应于开始/结束日期时间)。

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

我可以把这两个结合起来吗?以一种简单而又不太老套的方式?

干杯

【问题讨论】:

  • 每个节点都有一个 .priority。如果您能找到一种方法将您的日期时间和地理哈希组合成一个 .priority,您可以查询它们的组合。但听起来不太可能在您的用例中将两者结合起来。

标签: firebase geofire


【解决方案1】:

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

这是因为:

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

【讨论】:

  • 嗨,珍妮,感谢您的回答。我看到 startWith 将名称和优先级都作为参数。这是否意味着我可以将它们用作主索引和辅助索引,从而基于它们进行查询?例如,用它们的时间戳命名它们并用它们的 geohash 优先级 -> 然后使用 startWith(sometimestamp, somegeohash) 等
  • 是的,我想你可以。唯一需要注意的可能是优先级不能保证是唯一的。
  • 谢谢 :) 如果您想将其添加到您的答案中,我可以接受它作为我问题的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 2011-04-25
相关资源
最近更新 更多