【Android Firebase FireStore实时更新分页】幼敏悟过人,读书辄成诵。这篇文章主要讲述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
推荐阅读
- 无法引用webapp struts中的资源
- 将Raspberry PI 3与Android Things连接到Arduino [已关闭]
- “APK被定义了多次”,app无法安装Android Studio
- 设计AppServer面试讨论
- Android LiveData和Room(getValue返回NULL)
- Android运行时权限对话框未显示
- 为什么选择Android应用程序项目的Kotlin()
- 如何在Visual Studio Community 2017中更改为深色主题
- 如何确定数字是否为C中的阿姆斯特朗数