遇到了一个非常奇怪的问题。当试图导入firebase时,我得到了以下错误:
./node_modules/firebaseui/dist/esm.js
Attempted import error: 'app' is not exported from 'firebase/app' (imported as 'firebase').
我的项目结构是:一个包含react客户端文件夹的父文件夹。我在父文件夹中安装了firebase,在父文件夹的firebaseConfig文件中初始化了一个firebase应用程序,然后将其导入react客户端文件夹。
后来我尝试在react客户端文件夹中安装firebase并在其中导入firebase;npm ls firebase";在客户端文件夹中返回空,即使firebase确实在节点模块和客户端文件夹中的package.json中。我想知道是什么引起了这个问题。
父文件夹中的firebaseConfig.js
import firebase from 'firebase/app';
import 'firebase/firestore';
import 'firebase/auth';
const firebaseConfig = {
......
};
firebase.initializeApp(firebaseConfig);
export default firebase;
不幸的是,您已经升级了您的"火球";依赖于8.0.0;firebaseui";依赖项还不支持它。您将不得不暂时将firebase降级到7.24.0版本,直到firebaseui支持8.0.0中的突破性更改。
这是一个更新问题,虽然你可以修复导入firebase的方式,但你无法修复它在你使用的库中导入的方式,你必须等待这些库更新。
8.0.0 之前
import * as firebase from 'firebase/app'
在8.0.0 之后
import firebase from 'firebase/app'
库类似于FirebaseUI身份验证
Firebase版本I使用的是Firebase>8.0.0
我使用import * as firebase from 'firebase/app';
的代码行此导入适用于Firebase<8.0.0
如果您正在使用firebase>请前往并使用此import firebase from 'firebase/app';
;8.0.0从现在(2021年8月4日(起,后续版本可能会发生变化
这是因为您使用了错误的代码行,系统没有任何问题
去检查项目文件夹中的package.json文件。
查看此处package.json
正在检查package.json文件上的firebase版本
当我安装firebase时,默认情况下它已经安装了9.0.0版本。我看到了上面提到的错误,但当我将其更改为8.9.1并按以下方式导入时,它对我有效。
从"firebase/app"导入firebase
首先确定您的firebase版本:
firebase --version
如果您使用的是版本9,请更换此行
import firebase from "firebase/app"
带有
import firebase from 'firebase/compat/app'
参考:https://exerror.com/attempted-import-error-firebase-app-does-not-contain-a-default-export-imported-as-firebase/