首页 > 解决方案 > 如何用 Firebase 返回 x 最近的人?

问题描述

是否可以从 Flutter 中的 Cloud Firestore 数据库中查询一定数量的最近位置?geoflutterfire包似乎只允许您查询半径内的位置。缓慢增加半径直到找到可接受的用户数量是唯一的解决方案吗?这听起来像是一个非常不干净的解决方案。是否有其他软件包或方法可以为您提供此功能?

标签: firebasefluttergoogle-cloud-firestoregeolocation

解决方案


由于 Geo*Fire 包的工作方式,它们无法返回 X 最接近的结果。

常见模式:

  1. 从合理的范围开始,客户端按距离对结果进行排序,然后返回前 X。
  2. 如果结果太少,请使用更大的范围重试。

在 Firestore 中增加范围并不像您想象的那么昂贵,因为在第一次地理查询之后,较小范围的文档已经在客户端缓存中。


推荐阅读