firebase - 如何用 Firebase 返回 x 最近的人?
问题描述
是否可以从 Flutter 中的 Cloud Firestore 数据库中查询一定数量的最近位置?geoflutterfire包似乎只允许您查询半径内的位置。缓慢增加半径直到找到可接受的用户数量是唯一的解决方案吗?这听起来像是一个非常不干净的解决方案。是否有其他软件包或方法可以为您提供此功能?
解决方案
由于 Geo*Fire 包的工作方式,它们无法返回 X 最接近的结果。
常见模式:
- 从合理的范围开始,客户端按距离对结果进行排序,然后返回前 X。
- 如果结果太少,请使用更大的范围重试。
在 Firestore 中增加范围并不像您想象的那么昂贵,因为在第一次地理查询之后,较小范围的文档已经在客户端缓存中。
推荐阅读
- javascript - TextInput 样式问题 - CSS - React Native
- python - 在 OpenCV 中用轴绘制图像
- analytics - Amplitude & Segment.io - Saas 产品分析 - 如何获得所有用户
- python - 程序不将字符串与文本文件中的单词匹配
- ruby-on-rails - 期望同一类的多个 Rails 活动作业以不同的参数排队
- android - 如何使用 logb 将 android 数学函数转换为 swift
- python - 使用正则表达式替换文件中的子字符串和python
- python-3.x - kErrno 2 没有这样的文件或目录:'~/Users/root1/Coursera DeepLearning/Course2/dogs-vs-cats/train' - 但它存在
- c++ - C++ 输出 0 到 99998 并导致重复输出 2060
- javascript - 在没有 SDK 的情况下通过身份验证在 Google Pub/Sub 上推送消息