Как мне обрабатывать исключения при входе? - PullRequest
1 голос
/ 11 октября 2019

Здравствуйте, я новичок во флаттере, я создаю приложение для социальных сетей, в которое пользователи должны войти, используя электронную почту и пароль. Я хочу знать, как я могу показать пользователям ошибки входа в систему, такие как неверный пароль / неправильный адрес электронной почты и т. Д. Я использую 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 голосов
/ 11 октября 2019

В документации для 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 s. Если вы ожидаете увидеть другие исключения, вы можете добавить еще один общий catch блок или on определенные исключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...