flutter - Flutter - 如何通过地理距离从 Cloud Firestore 中获取文档?
问题描述
我有一个类似于 Tinder 的约会应用程序,但对于特定的利基市场,该应用程序将用户的纬度和经度存储在 Cloud Firestore 数据库上的文档中,我有一个方法可以返回与用户的距离(以米为单位),我正在使用 GeoLocator那和这个我知道当前用户和另一个用户之间的距离。
static String getDistanceBetween({
double sourceLat,
double sourceLong,
double currentLat,
double currentLong
}) {
double _distanceInMeters = Geolocator.distanceBetween(
sourceLat,
sourceLong,
currentLat,
currentLong,
);
print(_distanceInMeters);
if(_distanceInMeters == null){
return "?";
} else if(_distanceInMeters == 0.0){
return "0";
} else {
return _distanceInMeters.toString().substring(0, 5);
}
}
当用户登录时,我想首先检索最近的用户,从当前登录的用户检索最近的用户的文档最简单的方法是什么?
如果我能做这样的事情,我认为它可以解决问题,但我认为 Firestore 不可能:
FirebaseFirestore.instance.collection("users").orderBy(getDistanceBetween(), descending: true).get().then((querySnapshot){
...
/// Get documents from users that are nearest to the current user
})
解决方案
推荐阅读
- firefox - 防止 Firefox 在请求中绕过磁盘缓存(如何禁用“Race Cache With Network”)?
- makefile - 如何修复 FreeBSD 中缺少的依赖运算符错误?
- python - 在单线程上运行 Pybind11
- jxbrowser - JxBrowser 中的上下文菜单只显示一次
- reactjs - 如何让最简单的 Material UI Select 与 React 和 Typescript 一起使用?
- spring - 在 Spring Integration DSL 服务激活器中丢弃消息
- algorithm - 如果您在二维数组上进行二分搜索,matrix[mid/n][mid%n] 如何为您提供中间值?
- python - 在 Python 中将数据加载到训练集中
- ansible - Ansible - 当条件不适用于元任务时
- asp.net-mvc - 如何指定多个默认注销方案?