Firestore:更新对象中的字段会删除前一个字段

5 dart firebase flutter google-cloud-firestore

我正在使用 Flutter Cloud Firestore。这是我的数据库的样子。

在此处输入图片说明

我想在a_numbers对象中添加更多字段(如“2222”)。我updateData()是这样用的

DocumentReference ref = Firestore.instance.document("products/-LMhR5cAyW4T0sa03UtU");
ref.updateData({"a_numbers": {"2222" : false}});
Run Code Online (Sandbox Code Playgroud)

上面的代码片段基本上删除了先前的值 (1111),然后使用 2222 字段更新数据库。

有什么解决办法吗?

azi*_*iza 0

这是预期的行为,在您的 Flutter 应用程序中,您需要存储a_numbers在 a 中Map(key,value)使用 添加任何新对myMap.addAll({key:value}),然后您可以使用ref.updateData(myMap)

  • 我找到了一个解决方案,但仅适用于 Android(本机),Firebase 团队肯定会为此找到解决方案。请参阅[这个答案](/sf/ask/3315617931/),有 `SetOptions` 类Flutter 缺失了。否则一切正常。 (3认同)