使用 setData 的 Firestore fieldvalue.increment 不会增加值,而 updateData 会增加值

vee*_*tic 2 firebase flutter google-cloud-firestore

我有一个计数值为 1 的现有文档。当我使用FieldValue.increment(1)using setData(应该用新的增量值覆盖)时,它不会增加该值,但使用与 相同的值updateData,会将值增加到 2。

这是为什么?在这种情况下,尤其是当我使用相同数量的属性进行更新时,setData和之间有什么区别?updateData

Dou*_*son 7

“设置”类型操作默认会覆盖现有数据,因此它会按照您期望的方式工作。它不考虑任何现有字段的值。

如果您将“merge”选项添加到setData,那么只有指定的字段才会更新,其他所有内容都将保持不变,例如更新。请参阅setData 的文档

ref.setData(data, true)  // merge is true here
Run Code Online (Sandbox Code Playgroud)