gpt4 book ai didi

firebase - 如何区分使用 Firebase 进行 flutter 身份验证的异常?

转载 作者:IT王子 更新时间:2023-10-29 06:57:59 24 4
gpt4 key购买 nike

我有 Firebase 登录我的应用程序。我想向用户报告异常,以便他可以正确登录。在 signInWithEmailAndPassword(_email, _password) 中是电子邮件和密码登录。测试我可以创建两个不言自明的异常

1/Error: PlatformException(exception, 没有该标识对应的用户记录,用户可能已被删除,null)

2/Error: PlatformException(exception, The password is invalid or the user does not have a password., null)

我正在使用 try catch block 来捕获错误。这是我的代码:

void validateAndSubmit() async {
FocusScope.of(context).requestFocus(new FocusNode());
if (validateAndSave()) {
try {
var auth = AuthProvider.of(context).auth;
FirebaseUser user =
await auth.signInWithEmailAndPassword(_email, _password);
print('Signed in: ${user.uid}');
Navigator.pop(context);
widget.loginCallback(user);

} catch (e) {
print('Error: $e');
setState(() {
_showMessage=true;

});
}
}
}

我想根据异常给出不同的消息。但是似乎没有任何与异常相关的代码。

最佳答案

你可以捕获不同类型的异常,对于每个异常,你可以检查代码


void validateAndSubmit() async {
FocusScope.of(context).requestFocus(new FocusNode());
if (validateAndSave()) {
try {
var auth = AuthProvider.of(context).auth;
FirebaseUser user =
await auth.signInWithEmailAndPassword(_email, _password);
print('Signed in: ${user.uid}');
Navigator.pop(context);
widget.loginCallback(user);

} on FirebaseAuthInvalidUserException catch (e) {
print('FirebaseAuthInvalidUserException: $e');
if (e.code === 'ERROR_USER_NOT_FOUND') {
setState(() {
_showMessage=true;

});
} else {
// do something
}
}
} on FirebaseAuthInvalidCredentialsException catch (e) {
// do something InvalidCredentials
} catch (e) {
// do something else
}
}

关于firebase - 如何区分使用 Firebase 进行 flutter 身份验证的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55050579/

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