gpt4 book ai didi

android - Flutter 在尝试 Firebase 身份验证时无法捕获 PlatformException

转载 作者:IT老高 更新时间:2023-10-28 12:38:30 25 4
gpt4 key购买 nike

我最近才开始使用 flutter ,我正在尝试使用电子邮件和密码实现 Firebase 登录,当我输入正确的电子邮件和密码时它可以工作,但当密码错误时它不起作用。当密码错误时,它会给出一个 PlatformException,然后应用程序会卡住,即使我已经 try catch 异常,而 android studio 显示如下:

enter image description here

这是我的登录实现:

String _reason;
Future<void> _performLogin() async {
String reason;
// This is just a demo, so no actual login here.
try{
FirebaseUser user = await FirebaseAuth.instance.signInWithEmailAndPassword(email: _email, password: _password);
if(user != null){
Navigator.of(context).push(new MaterialPageRoute<dynamic>(
builder: (BuildContext context) {
return new MyApp();
},
));
final snack = new SnackBar(
content: new Text("Signed In Successfully"),
action: null,
duration: new Duration(seconds: 4),
backgroundColor: Colors.black,
);

Scaffold.of(context).showSnackBar(snack);
}
}on PlatformException catch(e){

reason = '${e.message}';

/*final snack = new SnackBar(
content: new Text(e.message),
action: null,
duration: new Duration(seconds: 4),
backgroundColor: Colors.black,
);

Scaffold.of(context).showSnackBar(snack);*/
}
setState(() {
_reason = reason;
});

}

我还添加了 import 'package:flutter/services.dart' show PlatformException;

请告诉我如何捕捉异常,谢谢。

最佳答案

我有一段时间遇到同样的问题,并找出了原因。

这里的问题是,尽管“似乎”你无法捕捉到 PlatformException,实际上,您“正在捕捉”异常。

在Android Studio中,我们可以设置调试中断策略,通过运行 > 查看断点。 enter image description here

如果您取消选中 Enabled,您会发现 Android Studio“不会妨碍”您捕获异常,并且您的应用将在 catch 子句执行时正确显示 snackbar ,这正是我们所期望的“当我们不是在调试”应用程序。

但是,当我们启用 Break on exceptions 进行调试时,Android Studio 只是通过在 catch 子句执行之前中断 PlatformException 来完成其工作。

因此,您可以取消选中“已启用”选项,或者只需按下 Android Studio 中的“恢复程序”按钮,而不必担心。你的应用程序可能工作得很好。 :)

关于android - Flutter 在尝试 Firebase 身份验证时无法捕获 PlatformException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50423645/

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