如何用颤振更新Firebase中没有全部数据的部分数据

如何用颤振更新Firebase中没有全部数据的部分数据,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我来自以下问题 我只想更新car1 name和img\u url。 我成功地更新了car1 name和img\u url。但是,详细信息在没有数据的情况下消失 我想知道如何更新部分数据 _firestore.collection('members').document(${loginUser.uid}).updateData({ 'cars': { 'car1': { 'name': name, 'img_url': 'https://www.x

我来自以下问题

我只想更新
car1 name
img\u url
。 我成功地更新了
car1 name
img\u url
。但是,
详细信息
在没有数据的情况下消失

我想知道如何更新部分数据

_firestore.collection('members').document(${loginUser.uid}).updateData({
    'cars': {
    'car1': {
        'name': name,
        'img_url': 'https://www.xxx.xxx/xxx.png',
        'details': {
            'type': carType,
        }
    }
  }

我该怎么做呢。请给我一些建议。谢谢。

您可以将
setData
merge:true

_firestore.collection('members').document(${loginUser.uid}).setData({
'cars': {
  'car1': {
      'name': name,
      'img_url': 'https://www.xxx.xxx/xxx.png',
      }
    },
  },
  merge:true,
);

您可以将
setData
merge:true

_firestore.collection('members').document(${loginUser.uid}).setData({
'cars': {
  'car1': {
      'name': name,
      'img_url': 'https://www.xxx.xxx/xxx.png',
      }
    },
  },
  merge:true,
);


您是否尝试过不传递“详细信息”?是的,当我更新时没有详细信息。这就是为什么我问我是否可以更新部分数据而不需要全部。一种方法是获取整个数据,然后在本地调整并在firestore上更新,而另一种方法是创建子文档,以便您可以更改部分数据。因此,您的意思是更新时我需要整个数据。您是否尝试过不传递“详细信息”?是的,当我更新时,没有详细信息。这就是为什么我问我是否可以更新部分数据而无需全部。一种方法是获取全部数据,然后在本地调整并在firestore上更新,而另一种方法是创建子文档,以便您可以更改部分数据。那么您的意思是更新时我需要全部数据。我还需要详细信息吗?不需要,它只会插入新数据并合并现有数据。我想这样做。根据您的问题,据我所知,您希望更新某些数据并保留现有数据。例如,这里您想要更新car1 name和image_url,并保留细节的先前值。我希望这就是你需要的。是的。非常感谢。但发生了另一个错误。我还需要详细信息吗?不,不需要,它只会插入新数据并合并现有数据。我想这样做。根据你的问题,据我所知,你想要更新某些数据并保留现有数据。例如,这里您想要更新car1 name和image_url,并保留细节的先前值。我希望这就是你需要的。是的。非常感谢。但另一个错误发生了。