Firebase调用app.auth()报错Property auth does not exist on type FirebaseApp如何解决
问题原因
这个报错是因为你使用的Firebase SDK版本为v9及以上,该版本默认采用模块化API设计,不再支持你代码中使用的v8及更早版本的命名空间式调用方法。
修复方案
方案1:使用兼容包适配旧写法
如果不想改动现有代码逻辑,可以安装兼容版本的Firebase依赖,修改导入语句即可:
- 调整导入和使用逻辑,完整代码如下:
// 替换原来的导入语句 import firebase from 'firebase/compat/app' import 'firebase/compat/auth' const app = firebase.initializeApp({ apiKey: "", authDomain: "", projectId: "", storageBucket: "", messagingSenderId: "", appId: "", measurementId: "" }) export const auth = app.auth() export default app
- 如果是TypeScript项目调整后仍有类型报错,可执行
npm i @firebase/auth-types@0.11.0安装匹配的类型定义包,或者临时将app.auth()改为(app as any).auth()绕过类型校验(不建议长期使用该写法)。
方案2:使用v9+ 模块化API(官方推荐)
直接适配新版API写法,性能更好、打包体积更小,完整代码调整如下:
// 导入模块化方法 import { initializeApp } from "firebase/app" import { getAuth } from "firebase/auth" const app = initializeApp({ apiKey: "", authDomain: "", projectId: "", storageBucket: "", messagingSenderId: "", appId: "", measurementId: "" }) export const auth = getAuth(app) export default app
内容的提问来源于stack exchange,提问作者gracie
相关产品推荐
相关产品推荐

