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

如何知道快照侦听器是完成的FireStore?

申炳
2023-03-14
 db.collection("groups").document(id.get(i)).collection("members")
                .get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        if (task.isSuccessful()) {
                            for (QueryDocumentSnapshot document : task.getResult()) {
                                id.add(document.getId());
                                Log.e(Tag, document.getId() + " => " + document.getData());

                                if (task.getResult().isEmpty()) {
                                    Log.d(Tag, "onSuccess: LIST EMPTY");
                                    return;
                                } else {
                                    // Convert the whole Query Snapshot to a list
                                    // of objects directly! No need to fetch each
                                    // document.
                                    Log.e(Tag, task.getResult() + "");
                                    typeAll = task.getResult().toObjects(GroupMembers.class);
                                }
                            }
                        } else {
                            Log.e(Tag, "Error getting documents: ", task.getException());
                        }

但我需要在通过快照获取所有数据后调用一个方法。如何实现?我应该测试什么?

共有1个答案

松增
2023-03-14

如何知道快照侦听器完成了?

快照侦听器始终在侦听更改,除非您要删除它。

如果您想知道数据何时完成从数据库加载,请注意,您无法知道所有成员何时完成下载,因为Cloud Fireatore是一个实时数据库,获取数据可能永远不会完成。这就是被命名为实时数据库的原因,因为members集合下的数据可以随时更改,属性可以添加或删除。

 类似资料:
  • 问题内容: 我现在正在与Firestore合作,但分页有一些问题。 基本上,我有一个集合(假设有10个项目),其中每个项目都有一些数据和时间戳。 现在,我正在获取前3个项目,如下所示: 在快照侦听器中,我保存了快照中的最后一个文档,以便将其用作下一页的起点。 因此,有时我会要求下一页类似的项目: 现在我的前端中有从索引0到索引5(共6个)的项目。整齐! 如果索引4处的文档现在将其时间戳更新为整个集

  • 我正在使用Firestore for Android。我知道它默认启用了持久性。 以下是一些背景: 我的应用程序显示了一个笔记列表,每一个笔记都绑在一个标签上。因此,在创建便笺时,我必须提供标签列表(在中,响应“选择标签”按钮),该列表将由上的快照侦听器提供。由于创建便笺是一个单独的,所以每次用户创建便笺时,都必须提供完整的标签列表。 null

  • 我需要在。我发现了这里提到的一种方法。它表明: 快照完成后,使用更新的白名单启动原始连接器 但是如何才能发现快照是否完整呢?

  • 问题内容: 如何快速执行Firebase的完成侦听器?它说文档中有SetValue和UpdateValue的完成列表,但没有示例。 问题答案: setValue的完成在{}块(关闭)中处理。因此,一旦尝试设置setValue,该块中的代码就会执行。如果没有错误,错误将为nil,快照将是已写入的数据。 给出结果 并打印“完成”

  • 问题内容: 这个问题已经在这里有了答案 : Android-处理EditText中的“ Enter” (28个答案) 5个月前关闭。 如果我有一个EditText,并且我想听用户是否按下了键盘上的“完成”按钮,该如何做? 问题答案: 代码是 在那个“ edittext”是文本字段的ID 查看此链接,只需将setOnKeyListener设置为您的editText即可。

  • 问题内容: 我想检查活动是否正在运行或完成。有什么方法可以检查活动状态? 我找到了,但是我不确定。 问题答案: 如果您想执行任何步骤,将变得不可见。 他们是这里的几种选择。 onDestroy() -进行最终清理。 isFinishing() - 调用后立即返回true。 onStop() -当被框架进程终止时。(未销毁) onPause() -当被其他覆盖 onBackPressed() -捕获