GeoFire与实时数据库紧密耦合,而地理查询是许多希望迁移到Firestore的应用程序的常见功能依赖 . 有没有办法在Firestore环境中复制散列/检索位置?
Sam来自Cloud Firestore团队 . 正如SUPERCILEX所说,Cloud Firestore已经支持GeoPoint数据类型 . 我们正在努力为产品提供原生地理查询 .
由于原生地理查询即将到来,我们不会将GeoFire移植到Cloud Firestore . 相反,我们会将该工程工作重定向到更快地获取本机查询 .
如果您今天需要地理查询并且不想构建自己的库,请坚持使用实时数据库!
想到的解决方案是在实时数据库中添加仅用于地理查询并使用 Cloud 功能同步两个数据库,就像Google建议使用presence一样 .
就我而言,它甚至不需要同步很多;我只是在实时数据库中保留一个uid列表及其位置,并在那里进行所有地理查询 .
Cloud Firestore本身支持地理点 . 请参阅支持的data types . 您将找到GeoPoint类,您可以使用它来设置数据并查询它:
query.whereEqualTo("location", GeoPoint(lat, long))
自最初的海报首先提出这个问题以来,已经引入了一个新项目 . 该项目名为GEOFirestore .
使用此库,您可以执行查询,例如圆圈内的查询文档:
const geoQuery = geoFirestore.query({ center: new firebase.firestore.GeoPoint(10.38, 2.41), radius: 10.5 });
您可以通过npm安装GeoFirestore . 您必须单独安装Firebase(因为它是GeoFirestore的对等依赖项):
$ npm install geofirestore firebase --save
好消息 . 现在有一个iOS和Android库,可以复制GeoFire for Firestore . 该库名为GeoFirestore . 它有完整的文档,并经过充分测试 . 我目前在我的应用程序中使用它,它的工作非常出色 . 代码与GeoFire的代码非常相似,因此只需几分钟即可学习 .
5 回答
Sam来自Cloud Firestore团队 . 正如SUPERCILEX所说,Cloud Firestore已经支持GeoPoint数据类型 . 我们正在努力为产品提供原生地理查询 .
由于原生地理查询即将到来,我们不会将GeoFire移植到Cloud Firestore . 相反,我们会将该工程工作重定向到更快地获取本机查询 .
如果您今天需要地理查询并且不想构建自己的库,请坚持使用实时数据库!
想到的解决方案是在实时数据库中添加仅用于地理查询并使用 Cloud 功能同步两个数据库,就像Google建议使用presence一样 .
就我而言,它甚至不需要同步很多;我只是在实时数据库中保留一个uid列表及其位置,并在那里进行所有地理查询 .
Cloud Firestore本身支持地理点 . 请参阅支持的data types . 您将找到GeoPoint类,您可以使用它来设置数据并查询它:
自最初的海报首先提出这个问题以来,已经引入了一个新项目 . 该项目名为GEOFirestore .
使用此库,您可以执行查询,例如圆圈内的查询文档:
您可以通过npm安装GeoFirestore . 您必须单独安装Firebase(因为它是GeoFirestore的对等依赖项):
好消息 . 现在有一个iOS和Android库,可以复制GeoFire for Firestore . 该库名为GeoFirestore . 它有完整的文档,并经过充分测试 . 我目前在我的应用程序中使用它,它的工作非常出色 . 代码与GeoFire的代码非常相似,因此只需几分钟即可学习 .