首页 > 解决方案 > 即使文档不存在,如何在flutter firestore中使用.updateData()而不是.setData()

问题描述

我正在尝试做一些事情,如果不存在文档,则执行 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,
        });
      }
    }
  }

有没有其他方法可以实现这一目标?

标签: firebaseflutterdartgoogle-cloud-firestore

解决方案


如果您想更新或创建一个尚不存在的文档,您可以将merge: true其作为第二个参数传递给setData()


推荐阅读