firebase - 动态孩子的firebase分页
问题描述
我目前正在考虑如何使用 firebase 实现分页。我了解如何对按静态值排序的数据进行分页,例如帖子的时间戳。您只需将查询限制为特定数量(例如 5 个帖子),保存最后一项静态值(例如时间戳),然后再次重复查询,从最后一项静态值(时间戳)开始。但是,当您想对一个值不断变化的孩子进行分页时会发生什么?例如,按孩子排序的数据:“评级”。随着其他用户不断评级,“评级”可以随时更改。因此,当我查询后 5 个帖子时,查询的前 5 个帖子可能不再是评分最高的 5 个帖子。
解决方案
假设您查询排名前 5 的费率帖子:
id: a, rating 5.0
id: b, rating 4.9
id: c, rating 4.8
id: d, rating 4.7
id: e, rating 4.6
这是一个实时查询,因此它会随着基础数据的变化而更新。假设有人给 itemc
一个非常低的评分,因此它的平均值变为4.0
。这意味着c
从查询快照中消失,并且下一个评分最高的项目被拉入,导致:
id: a, rating 5.0
id: b, rating 4.9
id: d, rating 4.7
id: e, rating 4.6
id: f, rating 4.5
因此,结果集中仍有 5 个项目。
在分页方面,这个新页面的最后一项仍然是下一页的锚点。
推荐阅读
- php - 如何使用 php 获取 2 位国家代码
- elasticsearch - 作为一名开发人员,我想探索 ELK 警报和观察者功能,以便我可以使用可自定义的响应配置客户条件查询
- regex - 如果以特定子字符串开头,则正则表达式忽略字符串
- c# - Google Recaptcha 工具提示翻译
- angular - 如何从打字稿角度的界面设置默认属性值?
- iis - 如何确保本地iis访问安全?
- javascript - PanGestureHandler 下无法点击 - React Native
- c++ - 具有在参数中返回指针的函数的智能指针
- android - Android 命令行工具 Panic Android_SDK_root 损坏
- linux - ARM64调用约定:少于8个参数时保存调用者或被调用者?