【发布时间】:2020-08-15 13:41:40
【问题描述】:
我需要检查数据是否成功写入 Firestore,所以如果成功,我需要显示一个显示数据已写入的弹出窗口,或者如果数据未写入,我需要显示一个显示任务失败的弹出窗口,所以我应该使用未来的建设者有什么办法做到这一点
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore
我需要检查数据是否成功写入 Firestore,所以如果成功,我需要显示一个显示数据已写入的弹出窗口,或者如果数据未写入,我需要显示一个显示任务失败的弹出窗口,所以我应该使用未来的建设者有什么办法做到这一点
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore
每个 Firestore 操作都是 Promise,所以它有 .then() 和 .catch() 方法来处理任务是成功还是失败。
例如,你可以做这样的事情。
firestoreInstance.collection("Users").document('123456').updateData({
"username" : 'white_devil'
}).then((result) {
print("Success!");
}).catch((error){
print("Error!")
});
不仅在updateData() 上,您还可以在setData()、add()、get()、getDocuments() 以及所有返回承诺的操作中使用这种情况。
【讨论】:
snapshot.hasError 来检查future 是否有错误。进一步参考:youtube.com/watch?v=ek8ZPdWj4Qo
您应该在返回的 Promise 上使用 catch 块来检查错误。如果 catch 没有触发,我们可以显示一个成功的警告。这是所有飞镖期货的运作方式。
查看文档:https://dart.dev/guides/libraries/futures-error-handling
【讨论】: