Firebase 在新的FlatterFireAPI中使用setData和merge:true

Firebase 在新的FlatterFireAPI中使用setData和merge:true,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我正在用新的FlatterFireAPI更新旧的颤振代码。我在一个函数中使用setData和merge:true来更新保存在地图中的一些文档字段。我确实将setData更改为set,但新的flatterfire插件出现了一个错误,没有定义“merge”。我在迁移文档中发现 setData/set现在支持SetOptions合并数据/字段(以前接受映射) 参考文件还说: /// If [SetOptions] are provided, the data will be merged into a

我正在用新的FlatterFireAPI更新旧的颤振代码。我在一个函数中使用
setData
merge:true
来更新保存在地图中的一些文档字段。我确实将
setData
更改为
set
,但新的flatterfire插件出现了一个错误,没有定义“merge”。我在迁移文档中发现

setData/set现在支持SetOptions合并数据/字段(以前接受映射)

参考文件还说:

/// If [SetOptions] are provided, the data will be merged into an existing


/// document instead of overwriting.
  Future<void> set(Map<String, dynamic> data, [SetOptions options]) {
    assert(data != null);
    return _delegate.set(
        _CodecUtility.replaceValueWithDelegatesInMap(data), options);
  }
///如果提供了[SetOptions],数据将合并到现有的
///文档而不是覆盖。
未来集合(地图数据,[SetOptions]){
断言(数据!=null);
return\u delegate.set(
_CodeUtility.replaceValueWithDelegatesInMap(数据),选项);
}
在我的原始代码中,我将新值保存在名为
changedvalues
Map
中,然后使用
setData(changedvalues,merge:true)


那么,如何提供SetOptions来确保merge为true,并且文档中仅更新changedvalue中的字段?

您必须执行以下操作:

set({"name" : "akbarB"}, SetOptions(merge : true))

据我所见,您现在使用的显示它接受
Map
作为第一个参数。你在使用它时遇到的具体问题是什么?请编辑问题以显示您正在使用的代码,以及您看到的特定错误。您尝试了什么?是什么阻止你这么做的?我刚刚编辑了这个问题。这看起来就像你的旧代码。您发布了新文档,因此您知道该文档不再有效。您在提供新的
SetOptions
时做了哪些尝试?您有文档说明了要提供什么。没有必要编造任何东西。编程不是猜谜游戏。我建议先试试。当出现问题时,linter会告诉您,因此甚至不需要构建来查找您是否做对了。我使用它来获得FirebaseFirestore文档的“附加”功能。清晰、简短并完成任务+1文档中还没有这方面的内容。难以置信的