javascript - REACT 上的“FirebaseApp”类型上不存在属性“auth”
问题描述
我正在学习如何在反应应用程序中使用 firebase 身份验证,我遇到了这个问题。有人可以帮助我吗?
我已经用 npm 安装了 firebase。这是我的 firebase.js 文件。
import { initializeApp } from "firebase/app";
import 'firebase/auth'
const firebaseConfig = {
apiKey: "AIzaSyA_89k1bt6Z2_1lVLb_Vwn5OL9_GgTNQEQ",
authDomain: "auth-development-59396.firebaseapp.com",
projectId: "auth-development-59396",
storageBucket: "auth-development-59396.appspot.com",
messagingSenderId: "1003786595756",
appId: "1:1003786595756:web:fa93ae00e49a4c04c49e09"
};
const app = initializeApp(firebaseConfig);
export const auth = app.auth()
export default app
这是依赖包.json 文件。
"dependencies": {
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3",
"bootstrap": "^5.1.1",
"firebase": "^9.0.2",
"react": "^17.0.2",
"react-bootstrap": "^1.6.3",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3",
"web-vitals": "^1.1.2"
}
解决方案
您正在使用新的模块化 SDKv8
,它使用与名称空间 ( ) 版本不同的语法。尝试这个:
import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth" // New import
const app = initializeApp(firebaseConfig);
export const auth = getAuth(app)
export default app
请注意,如果您必须重构所有代码以使用新语法。我建议查看文档以了解有关新语法的更多信息。另请查看此 Firecast。
如果您希望使用 V8 名称空间语法,那么您可以使用以下compat
版本:
import firebase from "firebase/compat/app"
import "firebase/compat/auth"
if (!firebase.apps.length) firebase.initializeApp({...config})
export const auth = firebase.auth()
export default app
推荐阅读
- reactjs - 使用 React.createRef() 创建的子组件引用的所有属性在 componentDidMount 方法中未定义
- html - 如何从我的 html 文件创建指向我的 css 文件的路径?
- math - 返回两个变量中较大者的公式
- reactjs - 如何在 Netlify 上发布带有 gatsby-image 的 gatsby 项目?
- python - django-imagekit 在 ImageCacheFile 默认 ctor 函数中抛出 AttributeError 异常
- azure - 带有服务总线队列处理程序的 Azure 事件网格主题订阅
- python - 替换正则表达式匹配的随机子集
- c# - EFCore - 仅在另一个表中不存在时播种数据
- php - 我想在 Laravel 项目中安装 npm,但它给我带来了这个错误
- python - 如何使用 python 脚本将远程 MySQL 数据库导出到本地 SQL 文件?