在我的火力基地有评论 -
我想按降序在RecyclerView中显示它们 . 所以,正如你所看到的,我在每个评论的日期都添加了“ - ” .
然后我就用 -
query.orderByChild("date").limitToFirst(10);
哪个工作正常 . 但我想分页,所以当用户点击“加载更多”时,它应该加载更多 . 要做到这一点,我正在存储最后一条评论ID,并尝试这样的事情 -
query.orderByChild("date").startAt(lastCommentId).limitToFirst(10);
它不起作用,甚至没有产生结果 . 我也尝试改变startAt和orderByChild的位置,但没有成功 . 然后我尝试了这样的事情 -
query.orderByKey().startAt(lastCommentId).limitToFirst(10);
哪个工作正常,但我想按日期顺序排列 . 所以,
query.orderByKey().startAt(lastCommentId).orderByChild("date").limitToFirst(10);
但这会导致我的申请崩溃 . 我不明白为什么它不起作用 . 我也尝试改变orderByChild的位置,但结果相同 .
任何人都可以解释我的问题是什么,并建议一个更好的解决方案,我正在尝试做什么 .
谢谢 !
Answer
我对这个主题做了一些更多的研究,因为这是firebase的常见问题之一 . 我发现了这个视频https://www.youtube.com/watch?v=CH9ptm4NeTw
希望这可以帮助 !
1 回答
要获得第二页结果,您需要两件事:
开始的日期值
要开始的项目的键
如果有多个具有相同日期的项目,则该密钥用作平局 .
如果你有两个查询将如下所示:
另见:
Firebase orderByChild with startAt()'s second argument w/ pagination not odering
How to use startAt(double value, String key) and endAt(double value, String key) Firebase RealTime Database in Android
How to paging query from Firebase using Android FirebaseUI
Firebase js: startAt, orderByChild and limitToLast