reactjs - 类型错误:_firebase_js__WEBPACK_IMPORTED_MODULE_1__.default.auth 不是函数
问题描述
如果可能的话,有人可以用我的代码的上下文向我解释这个错误吗?用 React.js 编写,用于使用 firebase 进行用户身份验证:
import React, { useEffect, useState } from "react";
import firebaseConfig from "./firebase.js";
export const AuthContext = React.createContext("");
export const AuthProvider = ({ children }) => {
const [loading, setLoading] = useState(true);
const [currentUser, setCurrentUser] = useState(null);
useEffect(() => {
firebaseConfig.auth().onAuthStateChanged((user) => {
setCurrentUser(user);
setLoading(false);
});
}, []);
if (loading) {
return <p>Loading...</p>;
}
return (
<AuthContext.Provider value={{ currentUser }}>
{children}
</AuthContext.Provider>
);
};
firebase.js 文件如下所示:
import firebase from "firebase/app";
import "firebase/auth";
const firebaseConfig = firebase.initializeApp({
apiKey: "*******************************",
authDomain: "react-firebase-auth-****.firebaseapp.com",
databaseURL: "https://react-firebase-auth-****.firebaseio.com",
projectId: "react-firebase-*******",
storageBucket: "react-firebase********.appspot.com",
messagingSenderId: "**********",
appId: "****************************",
});
export default firebaseConfig;
解决方案
尝试像这样单独导出 Firebase 服务,而不是导出所有内容:
import firebase from 'firebase/app';
import 'firebase/auth';
const firebaseConfig = {...};
if (!firebase.apps.length) {
firebase.initializeApp(config);
}
const auth = firebase.auth();
export {auth}
导入和使用:
import {auth} from "./firebase"
auth.onAuthStateChanged((user) => {...})
推荐阅读
- prolog - prolog 如何能够如此快地递归执行大型计算操作?像 10000 阶乘
- android - 如何在 Android Studio KeyStores creator 中设置不同的存储和密钥密码?
- firebase-realtime-database - 在 Firebase 实时数据库上执行 AppCheck 无效
- windows - WDAC 策略未阻止路径且未触发任何事件
- python - 以下使用内置排序函数的函数的时间复杂度是多少?
- javascript - 后退按钮不呈现信息 - 反应路由器 dom v5.2
- xamarin - Xamarin Multilingual App Ios App store 空白问题
- amazon-web-services - 需要从 aws kinesis 流中公开 HTTP API,所有无服务器,最好的选择是什么?
- android - 从 .split 创建的列表中获取倒数第二个项目
- java - 服务 SPRING BOOT 中的 DataIntegrityViolationException