You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Auth登录错误捕获与处理问题求助

Firebase Auth登录错误捕获修复方案

问题根源

  1. 错误类型捕获错误:Flutter中Firebase Auth抛出的异常是FirebaseAuthException,而非你代码里的PlatformException,导致错误处理逻辑无法触发。
  2. 错误码格式不匹配:当前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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:27:08