使用Firebase Realtime Database时报database is not a function错误求助
问题解决方法
你遇到的firebase_compat_app__WEBPACK_IMPORTED_MODULE_0__.default.database is not a function报错,根源是使用Firebase兼容版(compat)调用实时数据库能力前,没有引入对应的实时数据库依赖包,和数据库权限规则配置无关。
修复步骤
- 在现有导入语句中新增实时数据库的兼容包导入
- 无需修改其他初始化逻辑,即可正常调用
firebase.database()方法
修正后完整代码
import firebase from 'firebase/compat/app'; import 'firebase/compat/auth'; import 'firebase/compat/firestore'; // 新增实时数据库兼容包导入 import 'firebase/compat/database'; const firebaseConfig = { apiKey: process.env.REACT_APP_API_KEY , authDomain: process.env.REACT_APP_AUTH_DOMAIN , databaseURL: process.env.REACT_APP_DATABASE_URL, projectId: process.env.REACT_APP_PROJECT_ID, storageBucket: process.env.REACT_APP_STORAGE_BUCKET, messagingSenderId: process.env.REACT_APP_MESSAGING_SENDER_ID, appId: process.env.REACT_APP_APP_ID }; firebase.initializeApp(firebaseConfig); const auth = firebase.auth(); const database = firebase.database(); export{ firebase, auth, database}
如果后续打算升级到Firebase新版模块化API(非compat版本),可以改用官方推荐的 tree-shaking 写法,能有效减小应用打包体积。
内容的提问来源于stack exchange,提问作者Gabriel Donada
相关产品推荐
相关产品推荐

