【问题标题】:Why is a document from a Cloud Firestore database not deleted?为什么未删除 Cloud Firestore 数据库中的文档?
【发布时间】:2018-01-20 12:44:52
【问题描述】:

我有以下数据库结构:

Firestore-root
   |
   --- users (collection)
   |     |
   |     --- userId (document)
   |            |
   |            --- //user details
   |
   --- products (collection)
          |
          --- listId (document)
                 |
                 --- listProducts (collection)
                         |
                         --- productId
                                 |
                                 --- //product details

我使用以下代码删除文档:

rootRef.collection("users").document(userId).delete(); //works fine
rootRef.collection("products").document(listId).delete();

第一行代码运行良好,但第二行代码没有删除list 文档。是因为它下面有一个子集合还是我做错了什么?

如何删除整个listId 文档及其下面的所有内容?

谢谢!

【问题讨论】:

  • 在调用第二行之前,您能否检查一下您的listId 是否为空?
  • @RosárioPereiraFernandes 这肯定不是null,因为我在其他地方使用该变量并且它有一个值。还有什么想法吗?谢谢

标签: java android firebase google-cloud-firestore


【解决方案1】:

嵌套在文档下的集合不会在您删除该文档时自动删除。当您删除文档本身时,Firebase 控制台将以斜体显​​示文档 ID。文档本身不再存在(您可以在选择它时看到它,因为它没有任何字段),但仍然可以访问嵌套集合。

所以我怀疑products 文档不见了,但嵌套集合仍然存在。正如Firestore documentation on deleting collection 所述,您需要从集合中删除文档才能将其删除。

【讨论】:

  • 你是对的!我通过在树中降低一步到listProducts 集合解决了这个问题,然后我使用了deleteCollection() 方法,如您给我的链接中所述。完美运行!谢谢你!
猜你喜欢
  • 2021-10-16
  • 2018-03-22
  • 2018-08-02
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-28
  • 1970-01-01
相关资源
最近更新 更多