Сбой Firebase, не удается перехватить исключение

#firebase #flutter #firebase-authentication

#огневая база #сбой #firebase-аутентификация

Вопрос:

Я пытаюсь разобраться в этой проблеме. Проблема в том, что независимо от того, что я делаю, я не могу перехватить исключение для своего приложения. Программа вместо того, чтобы выводить ошибку, просто застревает (из-за неперехваченного исключения).

Это мой простой код. Может кто-нибудь, пожалуйста, помочь мне в решении этой проблемы?

 Future<void> onRegisterPress(
    BuildContext context,
    TextEditingController fName,
    TextEditingController lName,
    TextEditingController email,
    TextEditingController password) async {
  if (isValid(fName.text, lName.text, email.text, password.text)) {
    //TODO: Exception not caught
    try {
      var userCredential = await FirebaseAuth.instance
          .createUserWithEmailAndPassword(
              email: email.text, password: password.text);
    } on PlatformException catch (e) {
      print('Failed with error code: ${e.code}');
      print(e.message);
      Navigator.push(
          context,
          MaterialPageRoute(
              builder: (context) => MyHomePage(headline: 'Exception Caught!')));
    }

    Navigator.push(
        context, MaterialPageRoute(builder: (context) => MyLoginPage()));
  }
}
 

Обновление 1:

 User user = FirebaseAuth.instance.currentUser;
    try {
      await FirebaseAuth.instance.createUserWithEmailAndPassword(
          email: email.text, password: password.text);
    } on FirebaseAuthException catch (e) {
      print('Failed with error code: ${e.code}');
      print(e.message);
      Navigator.push(
          context,
          MaterialPageRoute(
              builder: (context) => MyHomePage(headline: 'Exception Caught!')));
    }
 

Обновление кода с помощью FirebaseAuthException, к сожалению, не имеет никакого эффекта.

Ошибка: Скриншот ошибки

Ответ №1:

Почему вы хотите поймать PlatformException ? В документации для этого метода упоминается FirebaseAuthException , попробуйте уловить это:

 try {
  await FirebaseAuth.instance.createUserWithEmailAndPassword(...)
} on FirebaseAuthException catch(e) {
  ...
}
 

Комментарии:

1. Я внес запрошенные изменения, но ошибка сохраняется. Пожалуйста, посмотрите на обновление 1, которое я опубликовал. Спасибо.

2. это генерируемое исключение, а не ошибка. вы видите какие-либо ошибки в журналах?

3. Ох. В журналах нет ошибки, но я хочу напечатать сообщение «Поймано исключение!», Которое также не отображается в журналах. После создания этого исключения моя программа застряла. Как я могу предотвратить его замораживание?