0
 // Queries
 let query = geoCollection
    .where("status", "==", "active")
    .near({ center: new firebase.firestore.GeoPoint(latitude, longitude), radius: 1000 });

 // Subscribe, add jobs into store and listen for changes
 query.onSnapshot((res) => res.docs && Array.from(res.docs.map((doc) => console.log(doc.data()))));

当我执行上述操作时,它无法正常工作。但如果我这样做,它会起作用:

 let query = geoCollection.where("status", "==", "active")

或者

let query = geoCollection.near({ center: new firebase.firestore.GeoPoint(latitude, longitude), radius: 1000 });

但不能在一起!这就是我想要的。

这是文档的链接。它不是很详细,但我尽力查看文件,到目前为止没有运气。 https://firebaseopensource.com/projects/geofirestore/geofirestore-js/

这是结构的图片: 在此处输入图像描述

4

1 回答 1

1

终于找到了解决办法。您需要在 Cloud Firestore 控制台中创建索引。

  1. 在我的案例中,将您的收藏名称放在第一个字段中是“工作”
  2. 将您要比较的“where”属性放在字段中(升序)
  3. 最后,输入g.geohash(升序)
  4. 单击保存,然后等待大约 5 到 10 分钟。

在此处输入图像描述

于 2020-09-13T08:03:29.143 回答