#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. Ох. В журналах нет ошибки, но я хочу напечатать сообщение «Поймано исключение!», Которое также не отображается в журналах. После создания этого исключения моя программа застряла. Как я могу предотвратить его замораживание?