angular - AngularFire2(firestore)需要像实时数据库一样一次设置多个文档
问题描述
我正在从 Firebases 实时数据库切换到 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
一次将所有内容添加为文档的最佳方法是什么?
EDIT
productCollection
是这样声明的productCollection: AngularFirestoreCollection<any>;
解决方案
当您add()
访问一个集合时,您正在为每个调用创建一个文档。
你想要这样的东西:
productsObj.products.forEach( (project) => {
this.productCollection.add(product);
};
推荐阅读
- javascript - UnhandledPromiseRejectionWarning:运行 puppeteer 脚本时未处理的承诺拒绝
- c++ - 如何打印二维向量的所有对角线元素
- python - Pandas 移动行和回填(时间序列对齐)
- flutter - 如何删除/禁用垂直 PageView 顶部/底部颜色 - 滚动发光 - 颤振
- flutter - 如何摆脱“未来的实例”
' 在颤振/飞镖? - android - 这个不断最小化我的应用程序的神秘“触摸并按住”最佳位置是什么,我可以禁用它吗?
- c - 如何在 Linux 中使用信号量和 C 同步两个进程的输出?
- python - 在 Python 中识别时间序列中的活动
- http - 让发布请求返回响应正文是否不好?
- php - 我需要其他东西来使 PHP 代码更安全吗?