当前位置: 首页 > 知识库问答 >
问题:

云Firestore-实时更新访问字段

白越
2023-03-14

我试图通过Cloud Firestore实时更新访问标记为vote_count的字段。

下面是我的数据结构

以前,在Firebase Realtime Database下,我会。addValueEventListener()并深入到“答案”。然而,有了云Firestore,它就有点复杂了。

    mStoreSelectedPollRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
        @Override
        public void onEvent(final DocumentSnapshot documentSnapshot, FirebaseFirestoreException e) {
            if (e != null){
                Log.v("LISTEN", "LISTEN_FAILED");
                return;
            }
            if (documentSnapshot != null){
                Log.v("Current Data", String.valueOf(documentSnapshot.getData()));
                mStoreSelectedPollRef.collection(ANSWERS_LABEL).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        updatePollResultAnswersDynamically(task.getResult().size(), documentSnapshot);
                    }
                });
            } else {
                Log.v("Current Data", "Current Data Nulll");
            }
        }
    });
  1. 应答文档总数。
  2. 每个单独的答案

共有1个答案

闻人昊昊
2023-03-14

根据这个片段:

mStoreSelectedPollRef.collection(ANSWERS_LABEL).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        updatePollResultAnswersDynamically(task.getResult().size(), documentSnapshot);
    }
});

您可以通过以下方式获得答案文档的总数:

task.getResult().size()

既然你已经有了这个代码,我真的不知道你在问什么。如果您想知道是否有一种方法可以在不获得文档的情况下获得计数,请查看这里:https://stackoverflow.com/a/46555026

for (DocumentSnapshot document : task.getResult()) {
    Log.d(TAG, document.getId() + " => " + document.getData());
}
 类似资料:
  • 带有我的适配器的代码段是:

  • 通过这篇博客,我可以看到我的应用程序最好使用Firebase Firestore的Firebase云功能,而不是使用客户端SDK直接访问Firestore。 我可以使用实现Firestore读取操作,使用或&使用方法实现写入操作。所有这些一次性操作都很好。 是否可以实现来获取实时更新?如果是,怎么做?

  • 遵循firestore的官方文件: 我想使用动态键而不是颜色。 这当然是不可能的,并且会引发错误。 我一直在尝试这样做: 它实际上是用正确的键进行更新,但不幸的是,它正在覆盖其他键(它们正在被删除)。

  • 我正在为具有许多嵌套行的json数据库寻找将Firebase实时数据库数据迁移到云Firestore的最佳方法。示例: 我没有找到任何可以帮助我的东西。我需要迁移的是Cloud FireStore的新离线功能。我正在使用Ionic3(角度5)

  • (注意:如果我在这里使用关系数据库术语,很抱歉。) 假设我有十个客户端连接到一个数据库。该数据库的持续吞吐量约为每秒1k次更新。显然,对于最终用户来说,每秒向web浏览器发送1k个更新(比如每秒1MB的数据更改)并不是一个好的体验。Firebase是否可以控制客户端在开始限制数据之前可以“接受”的数据量?我理解它可能会批量请求,但我的观点是,谷歌接受数据/更新的速度比浏览器更快(可能是通过弱互联网

  • 每个食谱文档包含三个内容。一个名为的字段,其中存储菜谱的名称;一个名为的字段,其中存储创建者uid的,以及一个名为的子集合,其中包含带有一些随机字段的文档。 问题是,使用这些规则只能创建菜谱文档。子集合及其文档不会创建,因为db表示 FirebaseError:[code=permission-denied]:缺少权限或权限不足。FirebaseError:缺少权限或权限不足。