如何查询Firestore数据“按距离排序”而不查询整个数据

时间:2018-10-20 09:01:51

标签: firebase google-cloud-firestore

是否可以从Firestore中按距离查询数据? 这是一个例子: 我在纬度和经度上有user1和user2的位置,如果user1的距离不超过5公里,则user1将从其中查询数据。

这是我尝试过的代码,但由于Firebase无法在其他字段上查询而出现问题。

我需要在纬度和经度上确定用户离5公里之遥。

  function querying(ref){
      var currentLoc=[0,0]; //current location(latitude&lontitude)
      var input = 10;       //input distance in kilometers Here is an example i use 10 kilometers
      var d=(input)/100;    //convert input in kilometers to distance
      ref.where("position.lat","<=",currentLoc[0]+d).where("position.lat",">=",currentLoc[0]-d)
         .where("position.lon","<=",currentLoc[1]+d).where("position.lon",">=",currentLoc[1]-d)
         .get().then((snapshot)=>{
            snapshot.forEach((doc)=>{
              console.log(doc.id,"=",doc.data());
            });
          }).catch((error)=>{
            console.log("error",error);
       });
    }

0 个答案:

没有答案