Firebase导入报错:SyntaxError: Cannot use import statement outside a module
问题原因及解决方案
这个错误的核心原因是Node.js默认使用CommonJS模块系统,你混合使用了CommonJS的require()和ES模块的import语法,同时未明确配置项目为ES模块,导致Node.js无法识别import语句。
解决方法二选一:
方法1:统一使用CommonJS语法
把所有ES模块的import替换为CommonJS的require(),同时注意导入Firebase模块的正确写法:
// Initialize Firebase const functions = require('firebase-functions'); const { initializeApp } = require('firebase/app'); const { getFirestore } = require('firebase/firestore'); // 必须显式导入getFirestore // 确保已定义firebaseConfig(从环境变量或配置文件中获取均可) const firebaseConfig = { // 你的Firebase项目配置信息 }; const firebaseApp = initializeApp(firebaseConfig); const db = getFirestore(firebaseApp);
方法2:配置项目为ES模块
- 在项目根目录的
package.json中添加模块类型配置:
"type": "module"
- 将所有
require()替换为ES模块的import语法:
// Initialize Firebase import functions from 'firebase-functions'; import { initializeApp } from 'firebase/app'; import { getFirestore } from 'firebase/firestore'; const firebaseConfig = { // 你的Firebase项目配置信息 }; const firebaseApp = initializeApp(firebaseConfig); const db = getFirestore(firebaseApp);
额外注意点
- 必须确保
firebaseConfig已正确定义,包含apiKey、authDomain等Firebase项目的必要配置项。 - 若使用Firebase Functions部署,需同步修改functions目录下
package.json的模块类型配置(选方法2时)。
内容的提问来源于stack exchange,提问作者Dean Debrio
相关产品推荐
相关产品推荐

