我目前正在考虑如何使用Firebase进行分页。 我了解如何按静态值(例如帖子的时间戳)对数据排序。您只需将查询限制为特定数量(例如5个帖子),保存最后一项的静态值(例如timestamp),然后从最后一项静态值(timestamp)开始再次重复查询。但是,当您想跟一个不断变化的孩子分心时会发生什么呢?例如,按孩子排序的数据:“评分”。当其他用户不断对其进行评分时,“评分”随时可能发生变化。因此,当我查询后5个帖子时,查询的前5个帖子可能不再是评分最高的5个帖子。除此之外,由于值不断变化,我无法找到可靠的查询起点或终点。
答案 0 :(得分:0)
假设您对前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
这是一个实时查询,因此它会随着基础数据的更改而更新。假设有人给项目c
评分很低,以至于其平均值变为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个项目。
就分页而言,此新页面的最后一项仍然是下一页的锚点。