【问题标题】:Firestore Geo QueriesFirestore 地理查询
【发布时间】:2021-05-29 04:04:43
【问题描述】:

有什么方法可以查询firestore db并按距离用户当前位置的距离(升序/降序)返回结果。

https://firebase.google.com/docs/firestore/solutions/geoqueries

上述文档 GeoQuery 返回的文档在范围内,但即使在给出方向后也不按排序顺序。

    public Query getDocuments(MainActivity mActivity, GeoQueryBounds bounds) {
    return FirebaseFirestore.getInstance()
                            .collection("user")
                            .whereEqualTo("type", Integer.valueOf("1"))
                            .orderBy("geoHash", Query.Direction.ASCENDING)
                            .startAt(bounds.startHash)
                            .endAt(bounds.endHash)
                            .limit(10);

【问题讨论】:

    标签: android firebase flutter google-cloud-firestore


    【解决方案1】:

    这些库的工作方式意味着它们根据定义不会从数据库中按距离顺序获取结果。因此,如果任何库按距离顺序返回它们,那是因为它们对数据进行了后处理。

    如果您使用文档中的方法,您可以在应用程序代码中对其进行后处理。 querying geohashes 的代码示例有一个使用GeoFireUtils.getDistanceBetween() 来确定距离的示例。

    【讨论】:

      猜你喜欢
      • 2019-11-02
      • 1970-01-01
      • 2018-03-19
      • 1970-01-01
      相关资源
      最近更新 更多