如何在flutter firestore中使用.updateData()代替.setData(),即使文档不存在,也可以使用。

问题描述 投票:0回答:1

我试图做一些类似于这样的事情,如果不存在一个文档,那么做setData,如果文档存在,做更新数据...... 我已经尝试过了(下面的代码),似乎是可行的,但我担心的是,如果当我启动应用程序时,错误信息发生变化怎么办?

Future updateReference(
    String phoneNumber,
  ) async {
    try {
      return await mCollectionRef.document(phoneNumber).updateData({
        uid: true,
      });
    } on PlatformException catch (error) {
      print(error.message.substring(0, 9));
      if (error.message.substring(0, 9) == 'NOT_FOUND') {
        return await mCollectionRef.document(phoneNumber).setData({
          uid: true,
        });
      }
    }
  }

有没有其他方法可以实现这个功能?

firebase flutter dart google-cloud-firestore
1个回答
1
投票

如果你想更新或创建一个文档,如果它不存在,你可以只通过 merge: true 作为第二个参数 setData().

© www.soinside.com 2019 - 2024. All rights reserved.