相关疑难解决方法(0)

224
推荐指数
11
解决办法
9万
查看次数

区分首次查询快照和更改Firestore中的侦听器

我在这里关注firestore的文档,并尝试将快照侦听器附加到集合上以获取实时更新。

我在尝试区分来自Snapshot事件侦听器的响应是第一次响应(在这种情况下,将返回集合中的所有文档)还是在更改事件响应(在这种情况下,我想添加检查)之间遇到麻烦确定发生了什么变化。同一文档中的此脚注如下:

重要说明:第一个查询快照包含与查询匹配的所有现有文档的已添加事件。这是因为您要进行一系列更改,使查询快照具有当前查询的初始状态

没有提到如何将第一个查询快照与随后的快照标识在一起。

只有相关的问题,我可以找到因此,这是一个,但它不会在我的情况帮助。

真的很感激任何帮助,因为我已经用不完了。

谢谢。

android listener firebase android-recyclerview google-cloud-firestore

5
推荐指数
1
解决办法
2711
查看次数

如何在Firestore Firebase中跳过初始数据并仅触发新更新?

我到处搜寻都没有运气。我想查询Firestore以获取类型为admin的所有用户。就像是:

SELECT * FROM users WHERE type=admin
Run Code Online (Sandbox Code Playgroud)

在属性total更改时。如果我正在使用:

users.whereEqualTo("type", "admin").addSnapshotListener(new EventListener<QuerySnapshot>() {
    @Override
    public void onEvent(@Nullable QuerySnapshot snapshots, @Nullable FirebaseFirestoreException e) {
        for (DocumentChange dc : snapshots.getDocumentChanges()) {
            switch (dc.getType()) {
                case ADDED:
                    //Not trigger
                    break;
                case MODIFIED:
                    //Trigger
                    break;
                case REMOVED:
                    //
                    break;
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

当我查询时第一次触发ADDED的情况,而当total更改case MODIFIED时又被触发(这是需要的)。我只需要更改,而不想要所有初始数据,我不需要它。如何获得?

请帮助我,这是我项目的最后一部分。如何跳过case ADDED呢?

java android firebase google-cloud-firestore

5
推荐指数
2
解决办法
1202
查看次数