首页 > 解决方案 > 如果文档不存在,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命令会做什么?

标签: javascriptgoogle-cloud-firestoreangularfire

解决方案


update()将失败的文档不存在。

如果您需要在一个无论文档是否已存在都不会失败的操作中创建或更新,您应该使用 set() 并将 { merge: true } 作为第二个参数传递给它。或者,您可以使用事务根据get().


推荐阅读