使用 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 进行分页/无限滚动的主要内容,如果未能解决你的问题,请参考以下文章
如何使用新的 Firebase (2016) 实现无限滚动?