是否存在对文档进行更新的任何方法(如果存在的话)来创建文档。现在,我正在使用update
方法,但是如果该文档不存在,它将抛出一条错误消息。
Firestore.instance.collection('partnerRequests').document(user.uid).updateData( {
DateTime.now().millisecondsSinceEpoch.toString():partnerRegistrationFormData})
未处理的异常:类型'PlatformException'不是类型的子类型 '字符串'
答案 0 :(得分:1)
如果您正在调用updateData()
函数,则只有在partnerRequests
集合中已经已经存在文档时,才更新文档。如果该特定文档不存在,则updateData()
调用将失败,但您向我们展示的例外。
另一方面,如果您要调用setData()
函数:
docRef.setData(data, merge: true)
如果文档不存在,则将其创建;如果文档已存在,则将对其进行更新。这基本上就是这两个功能之间的区别。
并回答您的问题:
如果存在,我需要更新文档,否则创建
您绝对应该使用setData()
。
答案 1 :(得分:0)
我相信答案是在此线程中:Firebase update vs set
具体来说,您将要使用方法.set({dataToSet},{merge:boolean})
,该方法将创建不存在的文档,然后通过merge
选择如果已经存在将发生什么情况(true =更新现有字段并添加新字段,false =覆盖该位置的所有现有数据)。