javascript - 如果文档不存在,angularfire6 文档更新命令会失败吗?
问题描述
当前的 angularfire 文档(Angularfire 6.0.4,2020 年 3 月 30 日的最新提交 d91965e)仅在操作文档时说明了这一点:
AngularFirestore 提供了设置、更新和删除文档数据的方法。
set(data: T) - 破坏性地更新文档的数据。
update(data: T) - 非破坏性地更新文档的数据。
delete() - 删除整个文档。不删除任何嵌套集合。
当直接与 Firebase 交互时(即不使用 angularfirestore),firebase 很清楚,如果文档不存在,更新将失败;必须set
对新文档使用该操作(可能使用 {merge: true} 选项作为安全措施,以防文档存在)。
update(data: T)
如果文档不存在,Angular Firestore命令会做什么?
解决方案
update()
将失败的文档不存在。
如果您需要在一个无论文档是否已存在都不会失败的操作中创建或更新,您应该使用 set() 并将 { merge: true } 作为第二个参数传递给它。或者,您可以使用事务根据get()
.
推荐阅读
- javascript - 如何从单击事件处理程序中获取 ID?
- node.js - UnhandledPromiseRejectionWarning:错误:无法存储合约代码,请检查您的gas限制
- php - Linux Screen 实用程序在重定向后不回显到屏幕
- android - 导航抽屉问题(不显示布局预览)
- node.js - 在电子中使用 node.js 模块
- semantic-ui - .babelrc 破坏语义用户界面和下一个应用程序
- machine-learning - Keras 不切实际的结果
- javascript - jQuery caoursel 滑块不更新窗口调整大小的宽度
- java - 是否有默认方法来计算 jList 中的相同元素?
- go - go中的*[]Type和[]*Type有什么区别