GeoFirestore - 是否可以在 GeoQuery 中组合方法 near() 和 where()?

GeoFirestore - Is it possible to combine the methods near() and where() in a GeoQuery?

 // 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 });

但没有在一起!这就是我想要的。

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

这是结构图:

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

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