我有一个由评论填充的提要,我只是先加载最新的评论,当用户请求更多评论时,他们将被加载(从最新到最旧的评论)。
这就是我的数据库的样子:
因此,假设我想一次只返回 1 条评论以开始...提要将从数据库列表中的最后一条评论开始,因为它是最近的评论,然后当用户请求它时,我想加载中间的评论但它必须放在我的recyclerView下面等等......
这是我的代码:
private void loadData(long lastDate) {
Query query;
if (lastDate == 0) {
query = Util.mServerDatabaseRef.child(Util.getServer().getServerUID()).child("timeline").child("commentList").orderByChild("date").limitToLast(1);
} else {
query = Util.mServerDatabaseRef.child(Util.getServer().getServerUID()).child("timeline").child("commentList").orderByChild("date").endAt(lastDate).limitToFirst(1);
}
new Thread(() -> query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
commentList = new ArrayList<>();
for (DataSnapshot userSnapshot : dataSnapshot.getChildren()) {
commentList.add(userSnapshot.getValue(Comment.class));
adapter.notifyDataSetChanged();
}
mIsLoading = false;
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
mIsLoading = false;
}
})).start();
}
lastDate 是最后评论的日期是我的适配器列表;
第一次加载工作得很好,但我无法解决这个问题以从最新到最旧检索评论并将其放置在每次下方。它的方式将返回或相同的评论或最旧的评论,并将其放在列表的顶部。当然,我也需要它一次处理超过 1 条评论。任何帮助表示赞赏