reactjs 我无法编译我的React应用程序,因为导入firebase配置时出现一些错误

xqkwcwgp  于 2022-11-22  发布在  React
关注(0)|答案(1)|浏览(183)
import { initializeApp } from "firebase/app";
import { getDatabase } from "firebase/database";
import { getAuth } from "firebase/auth";

const firebaseConfig = {
  apiKey: "AIzaSyCq8nv8xkSX7Z1V2-1aQaxkW72HeurOZj8",
  authDomain: "cyclofit-ee7cf.firebaseapp.com",
  databaseURL: "https://cyclofit-ee7cf-default-rtdb.asia-southeast1.firebasedatabase.app",
  projectId: "cyclofit-ee7cf",
  storageBucket: "cyclofit-ee7cf.appspot.com",
  messagingSenderId: "676472405532",
  appId: "1:676472405532:web:cb0ccd1b8bd9c86372a9d9",
  measurementId: "G-NEEDNQ6SFS"
};

const app = initializeApp(firebaseConfig);
const database = getDatabase(app);

const auth = getAuth();

export { app, auth ,firebaseConfig};

//我得到的错误是
无法编译。
./src/firebase.js尝试导入错误:'getAuth'未从'firebase/auth'导出。
//这是我尝试导入firebaseconfig的位置
//index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { initializeApp } from 'firebase/app';

import registerServiceWorker from './registerServiceWorker';
import { firebaseConfig , auth} from './firebase';

initializeApp(firebaseConfig);

ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();

无法运行我React应用程序。

wydwbb8l

wydwbb8l1#

在8.0.0版本中,Firebase SDK在处理导出的方式上进行了重大更改:
重大变更:json文件中的浏览器字段现在指向ESM包而不是CJS包。使用ESM导入的用户现在必须使用默认导入而不是名称空间导入。
8.0.0之前的版本

import * as firebase from 'firebase/app'

8.0.0之后
从'firebase/app'导入firebase使用require('firebase/app')或require('firebase')的代码仍然可以工作,但是为了获得正确的类型(例如代码完成),用户应该将这些require调用更改为require('firebase/app').default或require('firebase'). default。这是因为SDK现在使用ESM包的类型,并且不同的包共享一个类型文件。
因此,您必须使用新的ESM软件包默认导出:

import firebase from "firebase/app"

firebase.initializeApp({...})如果您使用的是SDK版本9.0,请改为阅读以下问题:
如何修复Firebase 9.0导入错误?“尝试导入错误:'firebase/app'不包含默认导出(作为'firebase'导入)。”

相关问题