使用 Firebase 进行分页/无限滚动

Posted

技术标签:

【中文标题】使用 Firebase 进行分页/无限滚动【英文标题】:Pagination/Infinite Scroll with Firebase 【发布时间】:2016-10-17 09:45:26 【问题描述】:

我有一个用childByAutoId() 创建的节点的子节点。我正在尝试在 TableView 中使用它进行分页,但我不知道如何。

我的数据库如下所示:

- items
   -KKM7Fv8H7dCiD2xChYB
      - userID : 1231231

   -KKM7Fv8H7dCiD2MVaVt
   -KKM7Fv8H7dCiDFJfska

我可以给它一个“每页项目数”并相应地检索数据的方法吗?无限滚动/分页的最佳方法是什么

items.queryOrderedByChild("userId").queryEqualToValue(key).observeEventType(.ChildAdded, withBlock:  snapshot in

【问题讨论】:

如果您使用queryLimitedToFirst:,您可以检索有限数量的孩子。对于后续页面,您将使用queryStartingAtValue:。所有相关方法都记录在reference guide 中。我还建议搜索“firebase & pagination”,因为这个话题之前已经定期讨论过。 【参考方案1】:

需要给每个子节点加上最后一个时间戳,然后查询

firebaseRef.child("user_id").queryOrdered(byChild: "timestamp").queryEnding(atValue: lastTimeStamp - 1).queryLimited(toLast: 10).observe(.value, with:  (snapshot) in )

【讨论】:

以上是关于使用 Firebase 进行分页/无限滚动的主要内容,如果未能解决你的问题,请参考以下文章

php 使用Laravel和jScroll进行无限滚动分页

如何使用新的 Firebase (2016) 实现无限滚动?

Laravel 5 分页 + 无限滚动 jQuery

在 laravel 中对数据数组进行分页并在 vuejs 中使用无限滚动的最佳方法

如何使用图像视图制作无限分页滚动视图?

UIScrollView 无限滚动不分页