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实时更新分页的主要内容,如果未能解决你的问题,请参考以下文章

我的 flatList 在我的 api 查询完成之前呈现

在 pubspec.yaml 文件中添加 firebase_auth 或 cloud_firestore 时构建失败并出现异常(firebase_core 正在工作):

如何归功于 Firebase 和 Android 支持库?

使用 Android Firebase 堆栈推送通知

从firebase检索数据到android

Android使用Firebase