Attempted import error: 'app' is not exported from 'firebase/app' (imported as 'firebase')

Attempted import error: 'app' is not exported from 'firebase/app' (imported as 'firebase')

遇到一个很奇怪的问题。尝试导入 firebase 时,出现以下错误:

./node_modules/firebaseui/dist/esm.js
Attempted import error: 'app' is not exported from 'firebase/app' (imported as 'firebase').

我的项目结构是:包含 React 客户端文件夹的父文件夹。我在父文件夹下安装了firebase,在父文件夹的firebaseConfig文件中初始化一个firebase app,然后导入到react client文件夹中。

我后来尝试在 react 客户端文件夹中安装 firebase 并在其中导入 firebase。奇怪的是,在我在客户端文件夹中安装 firebase 后,在客户端文件夹 returns 中执行“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;

很遗憾,您已将“firebase”依赖项升级到 8.0.0,但“firebaseui”依赖项尚不支持它。在 firebaseui 支持 breaking changes in 8.0.0.

之前,您必须暂时将 firebase 降级到版本 7.24.0

这是一个更新问题,虽然您可以修复导入 firebase 的方式,但无法修复它在您使用的库中的导入方式,您将不得不等待这些库更新。

8.0.0 之前

import * as firebase from 'firebase/app'

8.0.0 之后

import firebase from 'firebase/app'

库类似于 FirebaseUI 身份验证

我使用的 Firebase 版本 Firebase>8.0.0
我使用的代码行 import * as firebase from 'firebase/app'; 此导入适用于 Firebase<8.0.0

如果您从现在(2021 年 8 月 4 日)开始使用 firebase>8.0.0,请去使用这个 import firebase from 'firebase/app';
,以后的版本可能会发生变化。
这是因为你使用了错误的代码行,系统没有问题。
去检查项目文件夹中的package.json文件。

在此处查看package.json

Checking firebase version on package.json file

我安装firebase时默认安装的是9.0.0版本。我看到了提到的错误,但是当我将其更改为 8.9.1 并按如下方式导入时,它对我有用。

import firebase from 'firebase/app'

首先确定你的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/