Android - Firebase OrderByChild崩溃了应用程序

时间:2017-10-08 06:01:47

标签: java android firebase firebase-realtime-database

在我的火力基地有评论 -

enter image description here

我想按降序在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的位置但结果相同。

任何人都可以向我解释这个问题是什么,并建议我更好地解决我想要做的事情。

谢谢!

答案

我对这个主题做了一些更多的研究,因为这是firebase的常见问题之一。我发现了这段视频https://www.youtube.com/watch?v=CH9ptm4NeTw

希望这有帮助!

1 个答案:

答案 0 :(得分:0)

要获得第二页结果,您需要做两件事:

  1. 开始的日期值
  2. 项目的关键点
  3. 如果有多个具有相同日期的项目,则该密钥用作打破平局。

    如果您同时拥有两个查询,请执行以下操作:

    query.orderByChild("date").startAt(lastDate, lastCommentId).limitToFirst(10);
    

    另见: