【发布时间】:2020-04-09 19:01:50
【问题描述】:
我需要一些帮助来让 Firebase 数据库显示来自实时数据库的一些信息。
我正在使用 Firebase Query 通过 limitToLast(30) 在列表视图中显示最后 30 个项目。
但是,我想显示所有数据。我知道加载太多会导致系统变慢,这就是为什么 30 是最佳的。
有没有办法设置它,这样当我向下滚动时,它会隐藏最上面的那些,或者有某种页面,当他们转到下一页时,它会显示接下来的 30 个帖子。
我的代码:
String userID = user.getUid();
databaseReference.child(userID).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot data : dataSnapshot.getChildren()){
Author author = data.getValue(Author.class);
authorList.add(author);
}
Layout_Saved_Quotes savedQuotes = new Layout_Saved_Quotes(Show_Saved_Quotes.this, authorList);
list.setAdapter(savedQuotes);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Query databaseReference;
databaseReference = FirebaseDatabase.getInstance().getReference().limitToLast(30);
【问题讨论】:
-
您正在寻求实现“分页”,这可以说是使用
RecyclerView实现的最佳方式。在您的搜索中使用这两个术语应该会引导您走上正确的道路。 -
这个blog post 涵盖了您应该需要的一切。您只需将
.startAt(...).limitToFirst(...)更改为.endAt(...).limitToLast(...)并反转数组列表,然后再将其添加到适配器以保持项目的正确顺序。 -
谢谢,我正在研究这两个建议
标签: java android database firebase firebase-realtime-database