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

TypeScript调用firebase.auth()提示auth属性不存在错误如何解决

报错原因

你当前安装的Firebase为v9及以上版本,该版本默认采用模块化API设计,废弃了旧版命名空间式的firebase.auth()调用方式,因此TS类型校验无法识别对应属性。单独安装@firebase/auth-types无法解决问题,因为v9+版本的类型定义已经内置在firebase主包中,额外安装独立类型包反而可能引发类型冲突。

解决方案

方案1:改用新版模块化API(推荐)

直接适配v9+的官方推荐写法,修改firebase.ts代码如下:

import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";

const firebaseConfig = {
    apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
    authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
    projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
    storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
    messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
    appId: process.env.REACT_APP_FIREBASE_APP_ID
}

const app = initializeApp(firebaseConfig);
export const auth = getAuth(app);

方案2:使用兼容包保留旧写法

如果不想改动现有业务代码的调用逻辑,可以导入compat兼容版本的包,修改导入语句即可:

// 替换原来的导入语句为compat版本
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';

const firebaseConfig = {
    apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
    authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
    projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
    storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
    messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
    appId: process.env.REACT_APP_FIREBASE_APP_ID
}

firebase.initializeApp(firebaseConfig);
export const auth = firebase.auth();

后续操作

修改完成后先卸载不需要的独立类型包:
npm uninstall @firebase/auth-types
然后重启IDE的TS服务(VSCode按Ctrl+Shift+P选择「TypeScript: Restart TS Server」)即可消除报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:09:03