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

无法捕获Firebase Auth错误?如何打印错误信息与错误码?

Firebase Auth 错误无法捕获、控制台无输出问题解决

问题详情

希望在Firebase Auth登录出错时将错误信息打印到控制台,但控制台无任何输出,甚至没进入catch代码块。仅能在界面看到错误提示,无法获取错误信息和错误码做后续处理。

原始代码

if(remember){
        setPersistence(auth, browserLocalPersistence)
    } 
    setPersistence(auth, browserSessionPersistence)
    .then(() => {
    signInWithEmailAndPassword(auth, email, password);
    })
    .catch((err:any) => {
      console.log(err.message + "error");
      switch (err.code) {
        case "auth/Invalid-email":
        case "auth/user-disabled":
        case "auth/user-not-found":
          setError(err.message);
          break;
        case "auth/wrong-password":
          setError(err.message)
          break;
        default:
      }
    });
  };

问题分析与修复

1. 异步Promise未正确链式调用

signInWithEmailAndPassword是异步函数,返回Promise,但你在then回调中仅调用该函数,未返回其Promise,导致它抛出的错误无法被外层catch捕获。

2. 持久化设置逻辑存在问题

当remember为true时,你调用了setPersistence(auth, browserLocalPersistence)但未处理其Promise,随后又立即调用setPersistence(auth, browserSessionPersistence),这会直接覆盖之前的持久化设置,且第一个setPersistence的错误也无法被捕获。

3. Firebase错误码格式错误

Firebase Auth的错误码全部为小写连字符格式,比如auth/invalid-email,你代码中写的auth/Invalid-email无法匹配到对应错误类型。

修复后的代码

// 先确定要使用的持久化策略
const persistenceType = remember ? browserLocalPersistence : browserSessionPersistence;

setPersistence(auth, persistenceType)
  .then(() => {
    // 返回signInWithEmailAndPassword的Promise,让错误能被外层catch捕获
    return signInWithEmailAndPassword(auth, email, password);
  })
  .catch((err: any) => {
    console.log(err.message + " error");
    switch (err.code) {
      case "auth/invalid-email":
      case "auth/user-disabled":
      case "auth/user-not-found":
      case "auth/wrong-password":
        setError(err.message);
        break;
      default:
        console.log("未知错误码:", err.code);
        setError("登录失败,请稍后重试");
    }
  });

额外调试建议

  • 打开浏览器控制台的Verbose日志级别,Firebase Auth会输出详细的调试日志,帮助快速定位问题。
  • 确保使用最新版本的Firebase Auth SDK,避免旧版本的已知bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:05:25