Android Firebase FireStore实时更新分页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Firebase FireStore实时更新分页相关的知识,希望对你有一定的参考价值。
我想知道当我使用addSnapshotListener
进行实时更新时,如何对新的FirebaseFirestore数据库进行分页。
我遇到的问题是,一旦我设置了查询,我就无法更新limit()
,因此它仍保持相同的限制,并且我无法加载更多数据。
这就是我目前拥有的:
private Query query = db.collection("groups").orderBy("id", Query.Direction.DESCENDING).limit(15);
这些是查询参数,我有一个ListenerRegistration
来删除数据库监听器(我知道它也可以将活动传递给addSnapshotListener
方法)。
这是获取数据的代码:
registration = query.addSnapshotListener(this, new EventListener<QuerySnapshot>() {
@Override
public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {
mGroupArrayList.clear();
if (e != null) {
Log.w("MAINACTY", "listen:error", e);
return;
}
for (DocumentSnapshot dc : documentSnapshots.getDocuments()) {
// Get the last visible document
lastVisible = documentSnapshots.getDocuments()
.get(documentSnapshots.size() - 1);
mGroupArrayList.add(dc.toObject(Group.class));
}
adapter.notifyDataSetChanged();
}
});
如上所述,问题在于我无法更新我在查询上首次设置的限制,如果我尝试执行新查询,则在对信息进行编辑或离开活动时旧信息会消失。
在文档中只有一个使用get()
方法进行分页的示例,但是使用该方法没有实时更新。
答案
我在github上为Recyclerview Firestore分页制作此代码,也许这将有助于解决您的问题。
https://github.com/Malik333/RecyclerviewFirestorePagination
以上是关于Android Firebase FireStore实时更新分页的主要内容,如果未能解决你的问题,请参考以下文章
在 pubspec.yaml 文件中添加 firebase_auth 或 cloud_firestore 时构建失败并出现异常(firebase_core 正在工作):