Javascript 如何使用函数过滤Firestore采集数据(用于位置距离过滤)
想知道如何使用函数筛选Firestore文档集合,其中一些函数参数是集合文档的值 假设有一些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
{
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也有一个关于