Firebase/GeoFire - 当地最受欢迎的商品

Firebase/GeoFire - Most popular item at location

我目前正在评估应作为移动应用程序后端的数据库。


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


要求能够获取

  1. 最受欢迎的项目
  2. 某个位置
  3. (可能在未来:另外在某个时间范围内,这将是该项目的一个属性)

来自数据库。


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

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

那么如果我对距离不感兴趣(我只想在一定半径内有物品,不管离中心有多远)但对受欢迎程度因素(例如为了简单起见)我该怎么办一个简单的数字,象征着受欢迎程度)?

重要提示:
Filtering/Sorting 在客户端不是一个选项(或者至少是最不受欢迎的选项),因为结果集可能会增长到无限量。


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


是否有可能解决这个问题,或者 Firebase 是否退出了竞争而不是这份工作的合适人选?

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

Firebase 数据库的查询模型只允许过滤单个 属性。 Geofire 已经完成了一项看似不可能的经纬度过滤壮举。它通过 Geohashes 的魔力实现这一点,它将纬度和经度组合成一个字符串。

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