【问题标题】:How to update the part of data without all data in Firebase with Flutter如何使用 Flutter 更新 Firebase 中没有所有数据的部分数据
【发布时间】:2020-05-23 09:34:21
【问题描述】:

我来自以下问题。

Add nested data in Firestore by flutter

我只想更新car1 nameimg_url。 我成功更新了car1 nameimg_url。但是details 会在没有数据的情况下消失。

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

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

我该怎么做。请给我建议。谢谢。

【问题讨论】:

  • 你试过不传递“细节”吗?
  • 是的,当我更新时没有详细信息。这就是为什么我问我是否可以不全部更新部分数据。
  • 一种方法是获取整个数据,然后在本地对其进行调整并在 Firestore 上进行更新,而另一种方法是创建一个子文档,以便您可以更改部分数据。
  • 所以你的意思是我更新时需要全部数据。

标签: firebase flutter dart google-cloud-firestore


【解决方案1】:

您可以将setDatamerge:true 一起使用

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

【讨论】:

  • 我还需要详细信息吗?
  • 不不需要,它只会插入新数据并合并现有数据。
  • 我想做的那个。
  • 根据您的问题,据我了解,您希望更新某些数据并保留现有数据。例如,您想要更新 car1 名称和 image_url 并保留以前的详细信息值。我希望这就是你所需要的。
  • 是的。谢谢你。但是发生了另一个错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-01
  • 2019-02-03
  • 1970-01-01
  • 2019-05-24
  • 2023-04-02
相关资源
最近更新 更多