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应用程序。
1条答案
按热度按时间wydwbb8l1#
在8.0.0版本中,Firebase SDK在处理导出的方式上进行了重大更改:
重大变更:json文件中的浏览器字段现在指向ESM包而不是CJS包。使用ESM导入的用户现在必须使用默认导入而不是名称空间导入。
8.0.0之前的版本
8.0.0之后
从'firebase/app'导入firebase使用require('firebase/app')或require('firebase')的代码仍然可以工作,但是为了获得正确的类型(例如代码完成),用户应该将这些require调用更改为require('firebase/app').default或require('firebase'). default。这是因为SDK现在使用ESM包的类型,并且不同的包共享一个类型文件。
因此,您必须使用新的ESM软件包默认导出:
firebase.initializeApp({...})如果您使用的是SDK版本9.0,请改为阅读以下问题:
如何修复Firebase 9.0导入错误?“尝试导入错误:'firebase/app'不包含默认导出(作为'firebase'导入)。”