【问题标题】:firebase pagination by dynamic child动态孩子的firebase分页
【发布时间】:2018-09-26 22:54:19
【问题描述】:

我目前正在考虑如何使用 firebase 实现分页。 我了解如何对按静态值排序的数据进行分页,例如帖子的时间戳。您只需将查询限制为特定数量(例如 5 个帖子),保存最后一项静态值(例如时间戳),然后再次重复查询,从最后一项静态值(时间戳)开始。但是,当您想对一个值不断变化的孩子进行分页时会发生什么?例如,按孩子排序的数据:“评级”。当其他用户不断评分时,“评分”可能随时发生变化。因此,当我查询后 5 个帖子时,查询的前 5 个帖子可能不再是评分最高的 5 个帖子。除此之外,由于值不断变化,我无法找到可靠的查询起点或终点。

【问题讨论】:

    标签: firebase pagination


    【解决方案1】:

    假设您查询排名前 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 个项目。

    在分页方面,这个新页面的最后一项仍然是下一页的锚点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多