firebase - 即使文档不存在,如何在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,
});
}
}
}
有没有其他方法可以实现这一目标?
解决方案
如果您想更新或创建一个尚不存在的文档,您可以将merge: true
其作为第二个参数传递给setData()。
推荐阅读
- css - Is there a way to detect a mouseover in a grid-area of a CSS grid?
- firebase - Firebase 功能:配置:设置静默丢弃值?
- sql - I cannot figure out what I am doing wrong in this PIVOT
- c# - Does CNTK C# API support ConvTranspose?
- c - Segmentation fault (core dumped) 执行代码时出错
- javascript - How can I simplify this code to get a correct decimal place for a number?
- c# - C#方法中的变量
- css - Smoothen accordion collapse CSS3 keyframes animation
- javascript - 将javascript添加到vue组件时出现“ReferenceError:$未定义”