AngularFire2(firestore)需要像RealTime Database一样设置多个文档

时间:2018-04-30 19:08:10

标签: angular firebase google-cloud-firestore angularfire2

我正在从Firebases RealTime数据库切换到Firestore。并且在如何添加数据方面存在一些差异

我的数据

我有一个产品对象

const productsObj {
    products : [ {...},{...},{...},{...} ]
    meta: {}
}

火力地堡

我想要的结构是......

收藏productsObj{}

文件productsObj.products(多个)

字段productsObj.products[i].name

我的尝试

this.productCollection = this.afs.collection('products'); // compared to productsObj

this.productCollection.add(productsObj); // adds all products as one doc
this.productCollection.add(productsObj.products); // cant add array
this.productCollection.add(productsObj.products[0]); // works

最后一个有效,但是对吗?我必须遍历几个对象并为每个新文档调用firebase。

一次添加所有productsObj.products作为文档的最佳方法是什么?

修改 productCollection声明为此productCollection: AngularFirestoreCollection<any>;

1 个答案:

答案 0 :(得分:0)

当您add()到集合时,您正在为每次调用创建一个文档。

你想要这样的东西:

productsObj.products.forEach( (project) => {
  this.productCollection.add(product);
};

请参阅AngularFire2 documentation on Adding Documents to a Collection