【问题标题】:How to add collection within document + angularfire2 + angular5如何在文档 + angularfire2 + angular5 中添加集合
【发布时间】:2018-08-06 17:59:16
【问题描述】:

我想在文档中添加一个集合,我在谷歌上搜索了很多,但我没有找到任何合适的解决方案。 甚至搜索了 firebase 文档,但我的查询没有结果。

我尝试了不同的方法将集合添加到文档中,下面是我的代码示例。

let tmpObj = {
  title: vm.pageTitle,
  creationDate: dt.getTime()
};
this.db.collection("pages").doc("page_"+this.bookId).collection("Test").add(tmpObj);

另外,我什至尝试过

let mainCollection = this.db.collection("pages").doc("page_"+ this.bookId).collection("test").valueChanges();
let subcollection = mainCollection.push(tmpObj);
// This is also not working for me

在上面的代码中 dbpublic db: AngularFirestore 请找到随附的屏幕截图以查看我要在哪里添加收藏集(突出显示)。

我需要的结构是Collection -> Document -> Collection

【问题讨论】:

  • 您遇到任何控制台错误?
  • @GuruprasadRao 我没有收到任何错误
  • 你能subscribesubcollection 看看你得到了什么结果吗?
  • 您的代码应该可以运行,添加("Test").add(tmpObj).catch() 并检查是否有任何错误。您还需要检查您的 Firestore 规则。

标签: angular firebase-realtime-database google-cloud-functions angular5 angularfire2


【解决方案1】:

下面的代码满足了我的需求,现在我可以在每个文档中创建尽可能多的嵌套集合。

tmpObj = {
    title: vm.pageTitle,
    desc: description,
    creationDate: dt.getTime()
  }

this.db.collection('pages').doc("pages_"+ this.bookId).collection<any>("AllPages").doc("page_"+ dt.getTime()).set({tmpObj})
.then(function() {
    console.log("Pages Created successfully!");
})
.catch(function(error) {
    console.error("Error writing document: ", error);
});

【讨论】:

    【解决方案2】:

    请尝试:

    this.db.collection(`pages/page_${this.bookId}/Test`).add(tmpOb);
    

    【讨论】:

      【解决方案3】:

      请试试这个模板

      await this.db.collection('mainCollectionName').doc("mainDocID").set(obj);
      await this.db.doc('mainCollectionName/mainDocID').collection('subCollectionName').doc('subDocumentID').set(subCollectionObj);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-11
        • 1970-01-01
        • 1970-01-01
        • 2020-01-05
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        • 2018-04-30
        相关资源
        最近更新 更多