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

Flatter Firebase删除子集合不工作

祁柏
2023-03-14

在我的Firebase结构中,我有一个集合和一些子集合。我想在删除集合时,也删除子集合。我正在尝试做Firebase文档中的工作:“要在Cloud Firestore中删除整个集合或子集合,请检索集合或子集合中的所有文档并删除它们”。但它不起作用。我删除了集合,子集合仍然保存。我的代码:

    void deleteNestedSubcollections(String id) {

    Future<QuerySnapshot> books = libraryCollection.document(id).collection("Books").getDocuments();
    books.then((value) => value.documents.remove(value));

    Future<QuerySnapshot> catalogues = libraryCollection.document(id).collection("Catalogues").getDocuments();
    catalogues.then((value) => value.documents.remove(value));
  }

编辑1

共有1个答案

龙永逸
2023-03-14

要删除文档,需要使用delete方法


  void deleteNestedSubcollections(String id) {
    Future<QuerySnapshot> books =
        libraryCollection.document(id).collection("Books").getDocuments();
    books.then((value) {
      value.documents.forEach((element) {
        libraryCollection
            .document(id)
            .collection("Books")
            .document(element.documentID)
            .delete()
            .then((value) => print("success"));
      });
    });
  }
 类似资料:
  • 在 MongoDB 中,可以使用 drop() 方法来从数据库中删除指定集合,它会从数据库中完全删除一个集合,并且不会留下与已删除集合关联的任何索引。 drop() 方法在使用时不需要带有任何参数,并且在使用参数调用时会产生错误,该方法的语法格式如下: db.collection_name.drop() 其中 collection_name 为要删除的集合名称,方法调用成功会返回 true,否则返

  • 我想清理我的收集数据。我有集合名称“团队”。它具有数据和子集合名称“玩家”。 我通过Firestore的简单删除查询删除了“团队”文档,但我们知道我们无法通过删除主/祖先docID来删除子集合(玩家)。我们必须从“玩家”集合中获取所有文档,然后首先删除它们。之后,我们应该删除祖先(团队的文档)文档,以便清除集合的所有内容。 不可能从“团队”集合中获取这些孤立文档。那么,如何从集合中清除这些文档呢?

  • 问题内容: 我在Web应用程序中通过Hibernate使用JPA。这是两个实体(仅显示吸气剂): 如您所见,并称为“一对多”。 现在,我需要加载一个实例,删除部分或全部子代并保存更改。以下是对我不起作用的代码: 在上面的示例中未删除子实体。现在,我必须手动为每个孩子打电话。 有没有更简单的方法来管理子代? 请注意,我不想使用特定于Hibernate的功能,只能使用纯JPA。 问题答案: 对于JPA

  • 据我所知,我可以使用云函数以某种方式实现这一点?我试着阅读云函数,但我很迷路。是否有一种方法可以触发云函数,在用户更新帖子时删除子集合中的所有文档?

  • 当使用Firebase控制台时,可以看到所有文档和集合,甚至是路径中包含不存在的“文档”的子集合。 有没有可能,以某种方式,列出这些文件。既然控制台能做到,看来肯定有办法。如果有可能找到这些文档,是否可以创建一个查询来获取所有不存在但仅限于具有嵌套子集合的文档?(因为所有不存在的文档集将是无限的)

  • 问题内容: 我有两个表,tableA和tableB。 tableA具有列:tabAId,col2,col3 (tabAId primaryKey和Identity列。) tableB具有列:tabAId,名称 (tabAId不为空) 我在tableA的hbm文件中创建了Bag,以维护关系。 当我尝试更新 tableA中的 记录时,它将引发异常,因为我在tableA实例中有子项列表。 [NHiber