gpt4 book ai didi

firebase - 如何在 flutter 上处理 Firebase Auth 异常

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

请问有人知道如何在 flutter 上捕获 firebase Auth 异常并显示它们吗?

注意:我对控制台不感兴趣(catcherror((e) print(e))

我需要一些更有效的东西,例如“用户不存在”,这样我就可以将它传递给一个字符串并显示它。

几个月来一直在处理这个问题。

提前致谢。

我尝试用//errorMessage=e.toString(); 替换 print(e);然后将它传递给一个函数,所有的努力都是徒劳的。

    FirebaseAuth.instance
.signInWithEmailAndPassword(email: emailController.text, password: passwordController.text)
.then((FirebaseUser user) {
_isInAsyncCall=false;
Navigator.of(context).pushReplacementNamed("/TheNextPage");

}).catchError((e) {
// errorMessage=e.toString();
print(e);
_showDialog(errorMessage);

//exceptionNotice();
//print(e);

我希望能够提取异常消息并将异常消息传递到一个对话框,然后我可以将该对话框显示给用户。

最佳答案

新答案(18/09/2020)

如果您使用的是 firebase_auth: ^0.18.0,错误代码已更改!

例如:ERROR_USER_NOT_FOUND 现在是 user-not-found

我找不到任何相关文档,所以我进入了源代码并阅读了每个错误代码的注释。 (firebase_auth.dart)

我没有在我的应用程序中使用所有错误代码(例如验证、密码重置...),但您会在此代码段中找到最常见的错误代码:

(它处理旧的和新的错误代码)

String getMessageFromErrorCode() {
switch (this.errorCode) {
case "ERROR_EMAIL_ALREADY_IN_USE":
case "account-exists-with-different-credential":
case "email-already-in-use":
return "Email already used. Go to login page.";
break;
case "ERROR_WRONG_PASSWORD":
case "wrong-password":
return "Wrong email/password combination.";
break;
case "ERROR_USER_NOT_FOUND":
case "user-not-found":
return "No user found with this email.";
break;
case "ERROR_USER_DISABLED":
case "user-disabled":
return "User disabled.";
break;
case "ERROR_TOO_MANY_REQUESTS":
case "operation-not-allowed":
return "Too many requests to log into this account.";
break;
case "ERROR_OPERATION_NOT_ALLOWED":
case "operation-not-allowed":
return "Server error, please try again later.";
break;
case "ERROR_INVALID_EMAIL":
case "invalid-email":
return "Email address is invalid.";
break;
default:
return "Login failed. Please try again.";
break;
}
}

关于firebase - 如何在 flutter 上处理 Firebase Auth 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56113778/

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