父文档默认情况下被标记为“已删除”(斜体)

时间:2018-10-16 00:24:42

标签: firebase google-cloud-firestore firebase-console

我遇到一个奇怪的问题,即我们的父文档被标记为已删除。我正在插入这样的新文档:

const userDoc = admin.firestore().doc(`/user_bundles/${context.params.userId}/bundles/${chargeRecord.course_id}/media/${chargeRecord.media_type}`);
return userDoc.set(bundleDoc.data(), { merge: true });

但是,“ chargeRecord.course_id”文档被标记为已删除,导致空查询。

enter image description here

我遇到了另一个问题和答案,它解释了删除子集合时可能发生的情况。但需要明确的是,我们尚未删除此文档。它是为用户新创建的。

1 个答案:

答案 0 :(得分:1)

文档和子集合不能像文件系统文件和目录那样工作。

创建根据文档ID组织的子集合不会隐式创建任何父文档。子集合不以任何方式绑定到父文档,除非通过您强加的组织。在不存在的文档ID下组织子集合是完全有效的。

以斜体显示的文档ID不必“删除”。之所以显示它们,是因为它们不存在,甚至可能根本不存在-您无法分辨出差异。

如果要存在任何文档,则必须编写一些代码来创建它并提供一些字段。如果您从未明确创建文档,则该文档将不存在。

如果删除文档,则其子集合仍然存在。