在Cloud Firestore中,有三个写入操作:
1) 加上
2)设置
3)更新
在文档中,它说使用set(object, {merge: true})
会将对象与现有对象合并.
当您使用update(object)
时,也会发生同样的情况
那么,如果有区别的话,有什么不同呢?谷歌会重复逻辑,这似乎很奇怪.
在Cloud Firestore中,有三个写入操作:
1) 加上
2)设置
3)更新
在文档中,它说使用set(object, {merge: true})
会将对象与现有对象合并.
当您使用update(object)
时,也会发生同样的情况
那么,如果有区别的话,有什么不同呢?谷歌会重复逻辑,这似乎很奇怪.
我理解差异的方式:
没有merge
的set
将覆盖文档,如果文档还不存在,则创建文档
包含merge
的set
将更新文档中的字段或在文档不存在时创建它
update
将更新字段,但如果文档不存在,则将失败
create
将创建文档,但如果文档已存在,则会失败
您提供给set
和update
的数据类型也不同.
对于set
,您必须始终提供文档形状的数据:
set(
{a: {b: {c: true}}},
{merge: true}
)
对于update
,您还可以使用字段路径更新嵌套值:
update({
'a.b.c': true
})