网站集成Firebase报错:Uncaught ReferenceError: firebase is not defined
问题原因与解决方案
错误根源
你使用的是Firebase 9.x+的模块化SDK(通过ES模块import方式引入),但代码里仍在使用旧版命名空间SDK的写法firebase.database()——模块化SDK中不存在全局的firebase对象,因此抛出firebase is not defined错误。
修复步骤
1. 导入数据库模块
在你的模块脚本中,除了initializeApp,还要导入数据库对应的函数getDatabase:
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.14.0/firebase-app.js"; // 新增:导入数据库模块 import { getDatabase } from "https://www.gstatic.com/firebasejs/9.14.0/firebase-database.js";
2. 替换数据库初始化代码
用导入的getDatabase函数替代旧的firebase.database()写法:
// 初始化Firebase const app = initializeApp(firebaseConfig); // 初始化数据库 const db = getDatabase(app); console.log(db);
额外注意点
如果你的main.js中也有操作Firebase的代码,需要:
- 要么将
main.js也改为ES模块(添加type="module"属性),并在其中正确导入Firebase模块; - 要么将Firebase的初始化代码放在
main.js之前执行,确保main.js能获取到初始化后的db对象。
内容的提问来源于stack exchange,提问作者shemjay
相关产品推荐
相关产品推荐

