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

如何使用Firebase Admin捕获Firebase Auth错误并解决TypeScript类型报错

解决方案

报错原因

  • TypeScript 4.0及以上版本开启严格模式时,catch块捕获的error默认类型为unknown,不允许直接访问任意属性,这是触发Object is of type 'unknown'报错的核心原因。
  • 原生Error类型没有定义code属性,所以仅判断error instanceof Error后访问code仍然会触发类型报错。

正确修复步骤

步骤1:导入对应错误类型

你使用的是Firebase Admin Auth SDK,直接从对应包导入FirebaseAuthError类型即可:

import type { FirebaseAuthError } from "firebase-admin/auth";

步骤2:添加类型守卫做类型收窄

在catch块中先判断捕获的错误是不是FirebaseAuthError的实例,确认类型后再访问code属性:

try {
  user = await admin.auth().getUserByEmail(inputEmail);
} catch (error) {
  if (error instanceof FirebaseAuthError) {
    if (error.code !== "auth/user-not-found") {
      throw new Error("authentication failed");
    }
  } else {
    // 处理非Firebase抛出的其他异常
    throw new Error("authentication failed");
  }
}

临时备选方案(不推荐)

如果不需要严格类型校验,可以直接将error断言为any快速解决问题,但会丢失类型安全保障:

try {
  user = await admin.auth().getUserByEmail(inputEmail);
} catch (error: any) {
  if(error.code !== "auth/user-not-found") throw new Error("authentication failed");
}

内容的提问来源于stack exchange,提问作者anonymous-dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:42:00