当前位置: 首页 > 面试题库 >

如何从Firestore Android中的集合中获取文档列表

诸腾
2023-03-14
问题内容

我的Firestore数据库结构:

|
|=>root_collection
                  |
                  |=>doc1
                         |                  
                         |=>collection
                  |
                  |=>doc2
                         |                  
                         |=>collection
                  |
                  |=>doc3
                         |                  
                         |=>collection

现在我想从中获取文件清单root_collection。将有一个包含以下数据的列表{"doc1", "doc2", "doc3"}。我需要它是因为我想制作一个微调器并将这些数据放入微调器中。然后,用户将选择一些文档并下载。

我尝试使用下面的代码:

firestore.collection("root_collection")
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            Log.d(TAG,document.getId() + " => " + document.getData());
                        }
                    } else {
                        Log.d(TAG, "Error getting documents: ", task.getException());
                    }
                }
            });

但是代码只有在我拥有没有文档集合的数据结构时才起作用。在其他情况下,中没有任何文档QueryDocumentSnapshot

谢谢!


问题答案:

要在中包含所有文档名称的列表root_collection,请使用以下代码:

firestore.collection("root_collection").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            List<String> list = new ArrayList<>();
            for (QueryDocumentSnapshot document : task.getResult()) {
                list.add(document.getId());
            }
            Log.d(TAG, list.toString());
        } else {
            Log.d(TAG, "Error getting documents: ", task.getException());
        }
    }
});

您的logcat中的结果将是:

[doc1, doc2, doc3]

请记住,仅当您在这些文档中具有某些属性时,此代码才有效,否则,您将以一个空列表结尾ut。



 类似资料:
  • 我想从一个集合中得到所有的文件,然后用它们,得到他们的身份证。这里我的集合如何是用户集合,它只是一个集合和多个文档。我试了一下,但不起作用: 更新

  • 我一直在努力获取firestore收藏中所有文档的列表。我想显示集合中所有文档的所有详细信息。我的文档树如下- '组'集合----- 现在,我想获取特定groupID的“任务”集合中的所有文档及其详细信息。 我尝试了这个方法,但它不起作用,因为“没有为“CollectionReference”类型定义“get”方法。”请问怎么绕过这个?

  • 我现在有一个firestore,看起来像这样: 我使用的是,我试图获取“报告”集合中的所有文档。 我可以得到一个报告: 但我无法得到整个子集合 这可能吗?我是新手,所以这可能是一个愚蠢的问题。 谢谢 编辑控制台中收到的错误消息是: 我不确定权限,我没有访问权限,但如果是权限问题,我很困惑,我可以从集合中获取一个文档,但找不到获取所有文档的方法

  • 我有用于数据库的Spring Boot App和MongoDB。 在数据库中,我有一个集合packageholiday,其中有一些元素,这是JSON: 我的目标是什么: 正如你们所见,我在集合中有这样的数组: 所以我的问题实际上是创建API,它将从集合中返回具有指定的元素。 例如 的API 例如,对于相同的 的API 我怎样才能做到这一点?这样可能吗?

  • 问题内容: 对于我的应用程序而言,至关重要的是能够从Firebase的集合中随机选择多个文档。 由于Firebase(我知道)没有内置本机函数来实现执行此操作的查询,因此我的第一个想法是使用查询游标选择随机的起始索引和终止索引,前提是我拥有​​其中的文档数集合。 这种方法行之有效,但只能以有限的方式进行,因为每次每次文档都会与其相邻文档一起依次送达。但是,如果我能够通过其父集合中的索引选择一个文档

  • 如何使用JavaScript获取Firebase Firestore子集合“userPosts”中的所有文档?你可以在下面的图片中看到我的数据库结构。 以下是我尝试过的: 这段代码应该做的是获取子集合“userPosts”中的文档。它应该进入集合“posts”中的每个文档,然后进入“userPosts”并获取该子集合中的每个文档。 第一次收集“帖子” 子集合“userPosts”