我正在从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>;
答案 0 :(得分:0)
当您add()
到集合时,您正在为每次调用创建一个文档。
你想要这样的东西:
productsObj.products.forEach( (project) => {
this.productCollection.add(product);
};
请参阅AngularFire2 documentation on Adding Documents to a Collection。