Firebase Auth登录错误捕获与处理问题求助
Firebase Auth登录错误捕获修复方案
问题根源
- 错误类型捕获错误:Flutter中Firebase Auth抛出的异常是
FirebaseAuthException,而非你代码里的PlatformException,导致错误处理逻辑无法触发。 - 错误码格式不匹配:当前Firebase Auth的错误码采用小写连字符格式(如
user-not-found),而非旧版的大写下划线格式(如ERROR_USER_NOT_FOUND)。
修复后的代码
import 'package:firebase_auth/firebase_auth.dart'; @override Future<void> signInUser(UserEntity user) async { try { if (user.email!.isNotEmpty && user.password!.isNotEmpty) { await FirebaseAuth.instance.signInWithEmailAndPassword( email: user.email!, password: user.password!, ); } } on FirebaseAuthException catch (e) { switch (e.code) { case 'user-not-found': showToast("用户不存在"); break; case 'wrong-password': showToast("邮箱或密码错误"); break; case 'invalid-email': showToast("无效的邮箱格式"); break; default: showToast("登录失败:${e.message ?? '未知错误'}"); } } catch (e) { showToast("登录异常:${e.toString()}"); } }
关键说明
- 必须导入
firebase_auth包才能使用FirebaseAuthException类型。 - 新增通用异常捕获分支,避免遗漏未预见的错误场景。
- 错误码完全匹配Firebase Auth当前规范,你可以查看Firebase官方文档获取完整的错误码列表。
内容的提问来源于stack exchange,提问作者Mus
相关产品推荐
相关产品推荐

