【问题标题】:Framing Firebase data in more than one dimension在多个维度中构建 Firebase 数据
【发布时间】:2014-08-21 17:39:07
【问题描述】:

Firebase 非常适合使用 startAt() 和 endAt() 在单个维度中构建数据。

但是,在某些情况下,在多个维度中构建数据会非常有用。以下是几个例子:

示例 #1:我想查找地理围栏内的所有数据;也就是说,在两个范围内,一个是纬度,一个是经度。 lat_min -> lat_max,和 lon_min -> lon_max。

示例 #2:我有一个设置在外太空的游戏,我需要知道在特定时间范围内发生在 3 空间块中的所有事件。这样就变成了一个 4 维块:x_min -> x_max, y_min -> y_max, z_min -> z_max, and time_min -> time_max。

目前有什么方法可以在 Firebase 中执行此操作吗?如果没有,Firebase 是否有计划支持多维度的事件索引(以及对这些事件的查询框架)?

谢谢!

【问题讨论】:

  • 你检查过 GeoFire 吗? geofire.firebaseapp.com/sfVehicles/index.html
  • Geofire 确实完全按照您的描述进行。它主要基于使用 geohashes 作为优先级。 Geohashes 将经度和纬度组合成一个值,非常适合这种用途。

标签: firebase


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 2016-03-26
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多