Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用函数过滤Firestore采集数据(用于位置距离过滤)_Javascript_Google Cloud Firestore - Fatal编程技术网

Javascript 如何使用函数过滤Firestore采集数据(用于位置距离过滤)

Javascript 如何使用函数过滤Firestore采集数据(用于位置距离过滤),javascript,google-cloud-firestore,Javascript,Google Cloud Firestore,想知道如何使用函数筛选Firestore文档集合,其中一些函数参数是集合文档的值 假设有一些Firestore收集的表单文档 { pointOfInterest: "Some string label" longitude: -100.123 latitude: 50.456 } 还有一些代码可以检索用户的地理坐标(在我的例子中,是通过react native),比如 const getCurrentLatLong=()=>{ //做点什么,然后。。。 返回{纬度:someNumb

想知道如何使用函数筛选Firestore文档集合,其中一些函数参数是集合文档的值

假设有一些Firestore收集的表单文档

{
  pointOfInterest: "Some string label"
  longitude: -100.123
  latitude: 50.456
}
还有一些代码可以检索用户的地理坐标(在我的例子中,是通过react native),比如

const getCurrentLatLong=()=>{
//做点什么,然后。。。
返回{纬度:someNumber,经度:someOtherNumber}
}
我们最终希望能够做的是像

let currentLocation=getCurrentLatLong()
让filteredSet=firebase
.firestore()
.collection(“MyCollection”)
//筛选每个单独的文档
.过滤器(功能(文档、当前位置){
让docLat=document.latitude
让docLong=document.longitude
返回距离(
{纬度:docLat,经度:docLong},
当前位置)
因此,最终会得到集合中所有文档的某个筛选器集,这些文档与当前位置的距离小于某个常量距离


一些谷歌搜索带来了一些潜在的起点(和),但不太确定如何使用链接中显示的内容。任何关于如何实现这一目标的建议或文件都将不胜感激

无法将函数传递到Cloud Firestore,然后使用该函数过滤返回的文档。您要么需要传入静态值(例如,您想要返回的纬度和经度),要么需要读取所有文档并使用客户端函数进行过滤

您试图做的就是所谓的地理查询:根据文档到已知点的距离返回文档。不幸的是,尽管Firestore支持一个新的应用程序,但该功能尚未内置到Cloud Firestore中。您可以自己构建它,尽管您应该意识到目前这种查询效率很低

要了解更多信息,请执行以下操作:

  • 一些开发人员已经将Firebase的GeoFire库移植到Firestore。看,
  • 不久前,我在youtube上发表了一篇关于这一点的演讲:
  • AngularFirebase.com也有一个关于

如前所述,Firestore不支持本地地理查询。这是一个有点丢脸的插件,我一直在做一些开源的东西

这使您可以执行标准的Firestore查询,但也增加了按位置搜索的功能。仔细看一看,它可以做你想做的事。

可能是重复的