Java Android-Firebase OrderByChild使应用程序崩溃
在我的firebase中有以下评论- 我想在RecyclerView中按降序显示它们。所以,正如你们所看到的,我在每条评论的日期中都加了“-” 然后我就用了-Java Android-Firebase OrderByChild使应用程序崩溃,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,在我的firebase中有以下评论- 我想在RecyclerView中按降序显示它们。所以,正如你们所看到的,我在每条评论的日期中都加了“-” 然后我就用了- query.orderByChild("date").limitToFirst(10); 这很好用。 但我想分页,所以当用户单击“加载更多”时,它应该加载更多。 为此,我正在存储最后一个注释Id,并尝试了类似的操作- query.orderByChild("date").startAt(lastCommentId).limitToFi
query.orderByChild("date").limitToFirst(10);
这很好用。
但我想分页,所以当用户单击“加载更多”时,它应该加载更多。
为此,我正在存储最后一个注释Id,并尝试了类似的操作-
query.orderByChild("date").startAt(lastCommentId).limitToFirst(10);
query.orderByKey().startAt(lastCommentId).limitToFirst(10);
它不起作用,甚至不产生结果。我还试图改变startAt和orderByChild的位置,但没有成功。
然后我尝试了这样的东西-
query.orderByChild("date").startAt(lastCommentId).limitToFirst(10);
query.orderByKey().startAt(lastCommentId).limitToFirst(10);
这很好,但我想按日期顺序排列。所以
query.orderByKey().startAt(lastCommentId).orderByChild("date").limitToFirst(10);
但这会使我的应用程序崩溃。我不明白它为什么不起作用。我还试图改变orderByChild的位置,但结果相同
有谁能解释一下问题出在哪里,并为我想做的事提出更好的解决方案吗
谢谢
回答
我对这个主题做了更多的研究,因为这是firebase的常见问题之一。我找到了这个视频
希望这有帮助 要获得第二页的结果,您需要两件事:
query.orderByChild("date").startAt(lastDate, lastCommentId).limitToFirst(10);
另见:
query.orderByChild("date").startAt(lastDate, lastCommentId).limitToFirst(10);
另见:
lastCommentId
的值是多少?@pleft我正在执行此操作的活动崩溃,并且它再次启动我的主活动,从而重新启动logcat@FrankvanPuffelen最后一个Id-“-KvrIDhAV4qrMSodrAa7”。它在数据中间的某个地方。@Zicsus在这里查看这是否有助于查看您的日志并用它更新您的问题。logcat/stacktrace查看错误?您传入的lastCommentId
的值是多少?@pleft我正在执行此操作的活动崩溃,它再次启动我的主活动,从而重新读取logcat@FrankvanPuffelen最后一个Id-“-KvrIDhAV4qrMSodrAa7”。它在数据中间的某个地方。@Zicsus在这里查看这是否有助于查看您的日志并用它更新您的问题。