Geofire-js:Return 即时位置与 geoQuery 匹配的所有键

Geofire-js: Return all key's whose instantaneous location matches geoQuery

我在一个项目中使用 Firebase,但我无法理解查询的工作原理。我正在尝试查询并查找当前用户位置一定半径范围内的任何其他用户。

我可以创建 geoQuery,但我不确定如何 return 用户的位置在半径内。

从示例来看,似乎 key_entered 仅在数据库中的位置更改时触发。我所有的位置一旦设置都是静态的,所以我只想做一个查询,然后return所有用户的瞬时位置落在查询半径内。

Geofire 可以吗?

我的位置信息是这样保存在 Firebase 中的:

users {
   uid: {
        location: {
          g: 'GeoHash',
          l: [lat, long]
         }
      }
   }

这是我的查询:

let geoQuery = geoFire.query({
                center: [currentUser.location.l[0], currentUser.location.l[1]],
                radius: 1000
            });

问题是我没有使用 geoFire 的 set 方法存储位置,因此从未创建 geoHash,使 geoFire 无法查询。感谢@jacob 的帮助!