gpt4 book ai didi

android - 在 flutter 的异步函数中捕获 PlatformException

转载 作者:行者123 更新时间:2023-12-03 03:21:09 27 4
gpt4 key购买 nike

背景
我正在尝试从 Firestore 获取预订文件里面initState()我的方法State .
这也是我第一次使用 flutter/Dart ,如果我犯了一个非常菜鸟的错误,请道歉。
问题
当我运行 get()方法,async返回 Future<DocumentSnapshot> 的函数,抛出一个错误。我正在 try catch 并处理此错误。该错误是我打算获得的“权限不足”错误。
我的代码

class _MyHomePageState extends State<MyHomePage> {
final firestoreInstance = Firestore.instance;
Future<DocumentSnapshot> _futureBooking;

@override
void initState() {
super.initState();

try {
_futureBooking = firestoreInstance
.collection('bookings')
.document('1Twgjq5YTe3Oa12wwbs1')
.get();
} catch (err) {
print("error fetching from firestore: $err");
}
}
结果 catch从未输入 block ,并且应用程序在制作 get() 时总是崩溃称呼。
enter image description here
任何帮助,将不胜感激!

最佳答案

您无法使用 try-catch 捕获错误不使用时阻塞 await .
要以您希望调用此 future 函数的方式捕获错误,请使用 catchError Future 的方法类(class)。
前任。

_futureBooking = firestoreInstance
.collection('bookings')
.document('1Twgjq5YTe3Oa12wwbs1')
.get()
.catchError(
(err) {
print("error fetching from firestore: $err");
}
);
或者,您仍然可以使用 try-catchawait ,同时仍保持您的功能。前任。
Future<DocumentSnapshot> wrapperFunction() async {
try {
return await firestoreInstance
.collection('bookings')
.document('1Twgjq5YTe3Oa12wwbs1')
.get();
} catch (err) {
print("error fetching from firestore: $err");
}
}

@override
void initState() {
super.initState();
_futureBooking = wrapperFunction();
}

关于android - 在 flutter 的异步函数中捕获 PlatformException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63095373/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com