You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js连接Firebase遇module.exports导出错误,求解决方案

解决Node.js连接Firebase时的ERR_PACKAGE_PATH_NOT_EXPORTED错误

错误原因

这个错误是因为Firebase SDK v9及以上版本采用了ECMAScript模块(ESM)的导出结构,你当前用CommonJS的require()直接导入firebase包,无法找到正确的导出入口。

解决方案

方案1:使用Firebase兼容CommonJS的版本(快速修复)

修改config.js的导入逻辑,改用Firebase提供的compat兼容层适配CommonJS语法:

// config.js 修改后
const firebase = require("firebase/compat/app");
// 导入firestore的兼容版本
require("firebase/compat/firestore");

const firebaseConfig = {
  apiKey: "",
  authDomain: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: "",
  appId: "",
  measurementId: ""
};

firebase.initializeApp(firebaseConfig);
const db = firebase.firestore();
const User = db.collection("Users");

module.exports = User;

确保已安装firebase包:

npm install firebase

方案2:切换到ECMAScript模块(ESM)语法(推荐长期方案)

如果想使用Firebase SDK的最新特性,可将项目切换为ESM:

  1. 在package.json中添加"type": "module"
  2. 修改所有文件的导入语法:

index.js修改后:

import express from "express";
import cors from "cors";
import User from "./config.js";

const app = express();
app.use(express.json());
app.use(cors());

app.get('/', async(req,res) => {
  const snapshot = await User.get();
  const list = snapshot.docs.map((doc) => ({ id: doc.id, ...doc.data() }));
  res.send(list);
})

app.listen(4000, () => {
  console.log("Server running at port 4000")
})

config.js修改后:

import { initializeApp } from "firebase/app";
import { getFirestore, collection } from "firebase/firestore";

const firebaseConfig = {
  apiKey: "",
  authDomain: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: "",
  appId: "",
  measurementId: ""
};

const app = initializeApp(firebaseConfig);
const db = getFirestore(app);
const User = collection(db, "Users");

export default User;

额外注意事项

  • 务必填写完整且正确的Firebase配置信息,否则应用初始化会失败
  • 若使用方案2,确保Node.js版本在16.x及以上,以良好支持ESM语法

内容的提问来源于stack exchange,提问作者Dom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 14:05:01