Flutter Firebase更新字段会覆盖现有数据

时间:2020-08-13 14:04:46

标签: firebase flutter google-cloud-firestore

我正在尝试使用颤动更新房间中的字段(例如AC)。

Firebase values

问题在于它正在覆盖现有字段。如下图Over writing picture

这是我更新字段的代码:

            _firestore.collection("UserData").document(email).updateData({
                        room: [
                          {title: statevalue}
                        ]
                      }).then((value) {});

我做错了什么?预先感谢...

2 个答案:

答案 0 :(得分:1)

Firestore不提供任何操作来更新列表字段的各个项目。您将要做的是。

  1. 阅读文档
  2. 修改内存中的数组
  3. 将数组字段更新回文档

答案 1 :(得分:0)

好的。因此,Thing is Firestore不允许此类操作。那是试图更新列表的值。但是,您可以在本地更新想要的值,然后更新Firestorm值。

首先,您将在本地获取数据。

然后,更新您想要更新的值

room[0]["AC"] = true;

最后,推回消防站。

 _firestore.collection("UserData").document(email).updateData({
     room: room
  }).then((value) {
 // value updated
 });