当前的angularfire文档(Angularfire 6.0.4,2020年3月30日最新提交d91965e)仅在处理文档时这样说:
AngularFirestore提供了用于设置,更新和删除的方法 文档数据。
set(data:T)-以破坏性的方式更新文档的数据。
update(data:T)-无损更新文档的数据。
delete()-删除整个文档。不删除任何嵌套 集合。
当直接与Firebase交互时(即不使用angularfirestore),firebase很清楚,如果文档不存在,更新将失败;必须对新文档使用set
操作(如果存在文档,则可能使用{merge:true}选项作为安全保护措施)。
如果文档不存在,Angular Firestore update(data: T)
命令会做什么?
答案 0 :(得分:0)
update()
将失败,因为该文档不存在。
如果您需要在一项操作中创建或更新,而该操作无论文档是否已存在都不会失败,则应该use set() and pass { merge: true } to it as the second argument。或者,您可以根据get()
返回的内容,使用事务进行原子性的获取和设置操作。