在Firebase中删除带有子集合的集合

时间:2020-10-21 20:01:29

标签: java android google-cloud-firestore

我在Firestore中创建了以下结构:

/Users/USERID/Chats/UNKNOWN_DOCUMENT_ID/isClicked/isClicked-> Field: isClicked = 0/1

哪个是

/collection/document/collection/document/colection/document/Field

现在,我想为用户添加一个选项以删除其帐户,这也意味着删除上面的路径。但是,我不知道如何删除它。

我尝试执行以下操作:

db.collection( "Users" ).document(auth.getUid()).collection("Chats").get()
        .addOnCompleteListener( task -> {
            if (task.isSuccessful()) {
                for (QueryDocumentSnapshot document : task.getResult()) {
                    if (document != null) {
                        db.collection( "Users" ).document(auth.getUid()).collection("Chats").document(document.getId()).collection("isClicked").document("isClicked").delete();
                    }
                }
            }
        } );

但是我一直得到task.getResult的大小为0,即使有确定的文档,也没有文档,但是我不知道它的ID。

有什么办法删除它吗?

我了解到,不建议从代码内删除集合,但还是要删除。

谢谢

1 个答案:

答案 0 :(得分:0)

您可能实际上没有在“ / Users / USERID / Chats /”下编写任何文档。如果真是这样,那么您的查询将不会返回任何内容。在文档ID下创建子集合不会自动创建该文档。

在Firesotre控制台中查找该文档ID。是斜体字吗?如果是这样,实际上那里没有文档。它只是一个“虚拟文档”占位符,可让您单击进入子集合。这些文档无法查询,也无法删除。您必须删除其所有嵌套子集,才能将其从控制台中删除。

另请参阅: