首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在颤动中同时进行Firebase分页和过滤

在颤动中同时进行Firebase分页和过滤
EN

Stack Overflow用户
提问于 2020-08-30 11:19:20
回答 1查看 207关注 0票数 0

我有一个可以从Firebase (Cloud Firestore)查询的办公室集合,然后我只需要显示距离用户一定距离(比如20英里)内的办公室。我不能使用db.collection('offices').where(...)对于此查询。

我必须查询所有办公室,然后计算每个办公室与当前用户的距离,如果距离小于20英里,我将列出该用户的办公室。但问题是,我的收藏中可能有数百万个办公室,这意味着对于每个用户,我读取数百万个数据来显示,可能只有不到100个办公室将在他/她的20英里范围内。

这里的2个问题- 1)我如何在不阅读集合中的所有文档的情况下执行此查询。2)如何对结果进行分页,以便即使有100个办公室落在所需距离内,我仍然希望以10个为一批显示(获取前10个过滤的文档,一旦用户滚动到末尾,则获取下一个10个文档,依此类推)。

EN

回答 1

Stack Overflow用户

发布于 2020-08-30 13:57:33

您可以使用geolocator包来存储办公室的纬度和经度,然后使用where子句来过滤位置。这篇文章包含如何实现地理定位器包:Obtain coordinates from an address flutter

获取并保存每个办公室的地理定位器后,可以使用两个where子句进行查询,如下所示:

代码语言:javascript
运行
复制
// Get user's latitude and longitude from current location and then 
var lat = userLatitude;
var long = userLongitude;

Firestore.instance
    .collection('addresses')
    .where('latitude', isLessThanOrEqualTo: lat)
    .where('longitude', isLessThanOrEqualTo: long)
    .getDocuments()
    .then(snapshots => {
      // Do Stuff here
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63653640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档