【问题标题】:Add document to sub-collection of an empty document with a randomly generated id in firestore将文档添加到 Firestore 中具有随机生成的 id 的空文档的子集合
【发布时间】:2021-03-21 18:31:10
【问题描述】:

我正在尝试使用随机生成的 uid 在 Firestore 中创建一个空的新“Book”文档。同时,我想将数据添加到 book 文档中名为“Pages”的子集合中的“Page”文档中。我无法完成这项工作,是否需要在写入子集合之前显式引用 docId?

    export const addBookAndFirstPage = () => {
      const pageRef = db.collection("books").doc().collection("pages").doc("page1");
      return pageRef.set({ foo: "bar" });
};

【问题讨论】:

    标签: javascript google-cloud-firestore


    【解决方案1】:

    我已经解决了这个问题,方法是分别创建对每个文档的两个引用,但也按照 docs 使用 add() 而不是 doc()。请注意,add() 需要将对象作为参数,否则会引发以下异常

    FirebaseError:使用无效数据调用函数 addDoc()。数据必须 是一个对象,但它是:未定义

    要使用随机生成的 uid 创建一个空文档,我们需要将一个空对象传递给add 方法,如下所示。然后,我们可以为要添加到子集合的文档创建引用并设置数据:

    export const addBookAndFirstPage = async () => {
      try {
        let bookRef = await db.collection("books").add({});   // <--- Use add() with an empty object
        let pageRef = await caseRef.collection("pages").doc("page1");
        return await pageRef.set({ foo: "bar" });
      } catch (error) {
        console.log(error);
      }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      • 2018-07-22
      • 2020-06-28
      • 1970-01-01
      • 2018-10-21
      相关资源
      最近更新 更多