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

Android fiRecovery文档与子集合

陶英纵
2023-03-14

我被android firstore文档和子集合弄糊涂了。

此示例将生成以下数据结构:

root-> a -> b -> c -> d -> field1:apple
                           field2:orange

代码如下:

private void addItem() {
    FirebaseFirestore rootRefs = FirebaseFirestore.getInstance();
    Map<String, Object> item = new HashMap<>();
    item.put("field1", "apple");
    item.put("field2", "orange");
    rootRefs.collection("a")
            .document("b")
            .collection("c")
            .document("d")
            .set(item)
            .addOnSuccessListener(new OnSuccessListener<Void>() {
                @Override
                public void onSuccess(Void aVoid) {

                }
            });
}

子集合和文档节点交替显示:a、c与b、d。

但是如何在没有d节点的情况下实现类似的数据结构(如下所示):

root-> a -> b -> d -> field1:apple
                      field2:orange

自。add方法仅适用于document而不适用于collection,我们不能只删除d(document),因为c(collection)没有add方法。

我应该如何修改我的代码?

共有1个答案

熊朝
2023-03-14

自。add方法仅适用于document而不适用于collection,我们不能只删除d(document),因为c(collection)没有add方法。

你不可能做到这一点。文档应存在于集合或子集合下。一个文档不能存在于另一个文档之下。

根据官方留档,唯一允许的结构如下:

db.collection('coll').doc('doc').collection('subcoll').doc('subdoc')

在Firestore中,无法将集合存储在其他集合之下。因此,不允许使用以下代码行:

db.collection('coll').collection('subcoll').doc('subdoc') //Not allowed

因为无法将文档存储在其他文档之下。

db.collection('coll').doc('doc').doc('subdoc') //Not allowed
 类似资料:
  • 在我的集合的SnapshotListener中,我使用以下命令循环遍历文档: 在 for 循环中的每个文档中,让我们称之为 ,我在 Cloud Firestore 上还有另一个文档集合。我想检索内子集合中的所有文档(每个文档只有一个字符串字段)。我能够做一个来获取本身,我用它来获取字符串字段,但我不知道如何获取其子集合中的文档。

  • 考虑以下Firestore结构: 收藏 现在,我想查询宠物满足某些条件的人。例如,拥有两只以上宠物的人,或者拥有一只名为“ABC”的宠物的人。 这可能吗?

  • 为了查询子集合和父文档,我对firest的文档及其最佳实践有一些问题。我试图使用Typecript在我的Firebase函数中进行查询。 DB: ├── 用户(集合) │ └── 用户(ID为的文档) │ │ └── 计划(子集合) 我有一个数组中的用户ID列表,我需要从用户文档和当前文档的子集合计划中收集信息。 但是如何从用户文档和子集合(计划)文档(当前)中获取数据,我不知道在场景中最有效的查

  • 我有文档,其中包含子集合。现在,我想获取子集合中至少有一项的所有项目。这可能吗? 类似于: < code>getDocs(collection(getDB()," Projects)),其中(" Items.size ","

  • 我的FiRecovery数据库中有一个名为Reports的集合,我已经在其中添加了文档。但我现在的问题是我想在报表中添加一个带有子集合的文档,有什么想法吗?

  • 我们正在使用谷歌的Firestore获取嵌入式机器配置数据。因为这些数据控制着一个可配置的页面流和许多其他东西,所以它被分割成许多子集合。在这个系统中,每台机器都有自己的顶级文档。然而,当我们向机队中添加机器时,需要花费很长时间,因为我们必须手动复制多个文档中的所有数据。有人知道如何在Python中递归复制Firestore文档、所有的子集合、它们的文档、子集合等吗。您将有一个顶级文档的引用,以及