我目前正在考虑如何使用firebase实现分页。我了解如何对按静态值排序的数据进行分页,例如post的时间戳。您只需将查询限制为特定的数量(例如5个帖子),保存最后一个项目的静态值(例如时间戳),然后再次重复查询,从最后一个项目的静态值(时间戳)开始。但是,当您希望通过值不断变化的子项进行分页时,会发生什么情况呢?例如,按子对象排序的数据:"rating“。在这种情况下,当其他用户不断地进行评分时,“评分”可以随时改变。因此,当我查询第二个5个帖子时,查询到的前5个帖子可能不再是评分最高的5个帖子。除此之外,我无法找到可靠的查询起点或终点,因为值不断变化。
发布于 2018-09-27 06:59:02
假设你有一个关于排名前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个项目。
在分页方面,这个新页面的最后一项仍然是下一个页面的锚。
https://stackoverflow.com/questions/52527070
复制相似问题