我需要更新文档(如果存在),否则创建

Mid*_*laj 2 dart firebase flutter google-cloud-firestore

有没有办法对文档进行更新(如果存在),否则创建一个文档。现在我正在使用该update方法,但如果该文档不存在,则会抛出错误消息。

Firestore.instance.collection('partnerRequests').document(user.uid).updateData( {
                  DateTime.now().millisecondsSinceEpoch.toString():partnerRegistrationFormData})
Run Code Online (Sandbox Code Playgroud)

未处理的异常:类型“PlatformException”不是类型“String”的子类型

Ale*_*amo 5

如果您正在调用updateData()函数,则仅当文档存在于您的partnerRequests集合中时,您才会更新该文档。如果该特定文档不存在,则updateData()调用将失败,但您向我们展示的例外情况除外。

另一方面,如果您正在调用setData()函数:

docRef.setData(data, merge: true)
Run Code Online (Sandbox Code Playgroud)

如果文档不存在,您将创建它;如果文档已存在,您将更新它。这基本上就是这两个函数之间的区别。

并回答你的问题:

我需要更新文档(如果存在),否则创建

你绝对应该使用setData().