在Firestore中创建子集合会生成具有相同ID的两个文档(而不是更新现有文档)

时间:2020-02-06 00:29:30

标签: javascript node.js google-cloud-firestore

我正在使用set方法,如下所示:

admin.firestore()
  .collection('threads')
  .doc(threadId)
  .collection('posts')
  .doc(postId)
  .set(data);

进行以下工作,但是它会生成另一个ID完全相同且没有数据(只是其中的子集合)的文档,而不是将子集合添加到原始文档中。

这是set()方法调用后我的根集合(线程)的屏幕截图: enter image description here

id为斜体的文档不包含任何数据,而是一个子集合(包含正确的文档)。

我在这里做错了什么,如何确保实际存在的文档已更新?

我还应用了相同的方法在线程集合(db.collection('threads').doc(newThreadId).set(data))中创建文档,并且就像创建和更新现有文档一样具有魅力。

1 个答案:

答案 0 :(得分:1)

如果您的代码仍在按预期方式读写文档数据,无论您在控制台中看到什么,那么恭喜您-您在Firebase控制台中发现了一个错误。您的代码或SDK做错事情的可能性很小。

我建议contacting Firebase support并提交一个错误报告,其中包含您采取的可重现这种情况的步骤。