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

Flutter Web中createUserWithEmailAndPassword返回unknown错误码问题

解决Flutter Web Firebase Auth注册错误码显示为unknown的问题

问题分析

在Flutter Web环境下调用Firebase Auth的createUserWithEmailAndPassword方法时,触发email-already-in-use这类已知错误时,捕获到的FirebaseAuthException.code返回unknown,但错误消息中包含正确的错误码(如auth/email-already-in-use)。这是因为部分版本的firebase_auth在Web端存在错误码映射不完整的问题,或是JS层错误未正确转换为Dart端的异常code。

解决方案

1. 升级firebase_auth到最新稳定版

首先尝试更新firebase_auth依赖到最新稳定版本,很多这类Web端的异常映射问题在新版本中已被修复。修改pubspec.yaml中的依赖:

firebase_auth: ^latest_version

执行flutter pub get更新依赖即可。

2. 手动解析错误消息中的真实错误码

如果升级后问题仍存在,可以通过解析错误消息提取真实的错误码,兼容e.code正常和异常的情况:
修改异常捕获代码如下:

on FirebaseAuthException catch (e) {
  log.e(e.code);
  log.e(e.message);
  
  // 从错误消息中提取真实的auth错误码
  String? actualErrorCode;
  final regex = RegExp(r'\(auth\/([a-z-]+)\)');
  final match = regex.firstMatch(e.message ?? '');
  if (match != null) {
    actualErrorCode = match.group(1);
  }

  if (actualErrorCode == 'email-already-in-use' || e.code == 'email-already-in-use') {
    return left(const AuthFailure.emailAlreadyInUse());
  } else {
    return left(const AuthFailure.serverError());
  }
}

3. 检查Firebase Web配置

确认web/index.html中的Firebase配置(API密钥、项目ID等)是否与Firebase控制台完全一致,配置错误也可能导致异常信息异常。

内容的提问来源于stack exchange,提问作者bear

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 08:37:33