如何处理登录异常?

时间:2019-10-11 14:08:01

标签: firebase flutter dart firebase-authentication

您好,我是新手,我正在制作一个社交媒体应用程序,用户可以在其中使用电子邮件和密码登录。我想知道如何显示用户登录错误,例如密码错误/电子邮件错误等。我正在使用Firebase作为应用程序的后端数据库

我已经成功创建了应用程序的登录和注册部分,但是无法显示其他错误。这是我的代码有人请帮助我

Future LogIn(BuildContext context) async {
  FirebaseUser user = (await _Auth.signInWithEmailAndPassword(
          email: getEmail(), password: getPass()))
      .user;
  try {
    if (user.isEmailVerified) {
      Navigator.pushNamed(context, HomeScreen.id);
      //Navigator.pushNamed(context, HomeScreen.id);
      ClearAllInfo();
    } else {
      user.sendEmailVerification();
      Alert("EMAIL NOT VERIFIED").show(); //email not verified alert
    }
  } catch (e) {}
}

1 个答案:

答案 0 :(得分:1)

documentation for signInWithEmailAndPassword列出了所有可能的错误:

  • ERROR_INVALID_EMAIL

  • ERROR_WRONG_PASSWORD

  • ERROR_USER_NOT_FOUND

  • ERROR_USER_DISABLED

  • ERROR_TOO_MANY_REQUESTS

  • ERROR_OPERATION_NOT_ALLOWED

现在,您可以在try-catch中进行测试:

try {
  FirebaseAuth.instance.signInWithEmailAndPassword(...); // Your signin call.
} on PlatformException catch (e) {
  switch (e.code) {
    case 'ERROR_WRONG_PASSWORD':
      // Handle wrong password.
      break;
    // Add other cases.
    default:
      break;
  }
}

请注意,我添加的catch块仅捕获PlatformException个。如果您希望看到其他异常,则可能需要添加另一个常规catch块或on特定异常。