Firebase / GeoFire - 地点

时间:2016-10-10 07:47:48

标签: firebase geolocation firebase-realtime-database geofire

我目前正处于数据库的评估过程中,该数据库应作为移动应用程序的后端。

现在我正在关注 Firebase ,现在我非常喜欢它。

要求有可能获取

  1. 最受欢迎的商品
  2. 位于特定位置
  3. (可能在将来:另外在某个时间范围内,这将是该项目的属性)
  4. 来自数据库。

    很自然地,我偶然发现了为Firebase提供基于位置的查询可能性的GeoFire。

    不幸的是 - 至少据我所知 - 没有可能通过距离以外的属性来排序结果。 (如果我错了,请纠正我。)

    那么,如果我对距离不感兴趣(我只想在一定范围内有物品,无论离中心多远),我会怎么做,而是在流行度因素中(例如为了简单起见,简单起见)象征人气的数字?

    重要:
    客户端的过滤/排序不是一个选项(或至少是最不喜欢的选项),因为结果集可能会增长到无限量。

    该应用程序的第一个版本将用于android,因此Firebase Java客户端库将在第一步中使用。

    是否有可能解决这个问题,或Firebase退出竞争对手而不是合适的候选人?

1 个答案:

答案 0 :(得分:0)

无法在Geofire的服务器端查询中添加额外条件。

Firebase数据库的查询模型仅允许对单个属性进行过滤。 Geofire已经在纬度和经度上执行了一个看似不可能的过滤技术。它通过Geohashes的魔力来实现这一点,它将纬度和经度组合成一个字符串。

严格地说,你可以找到一种方法来扩展Geohashes的魔力,在混合中添加第三个数字。但尽管可能,我怀疑对我们大多数人来说这是可行的。