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

跟随Full Stack React & Firebase教程做注册时出现ERR_PACKAGE_PATH_NOT_EXPORTED报错

错误根因

该报错由服务端云函数环境错误引入客户端Firebase SDK导致:你当前使用的v9及以上版本的客户端Firebase包调整了模块导出结构,package.json没有定义默认主导出入口,在Node.js环境直接require客户端firebase包就会触发ERR_PACKAGE_PATH_NOT_EXPORTED错误。
Cloud Functions作为服务端运行环境,应该使用专门的Firebase Admin SDK,而非面向前端的客户端SDK。

解决步骤

  • 首先进入项目的functions目录,卸载错误安装的客户端firebase包:
    npm uninstall firebase
  • 安装服务端专用Firebase Admin SDK:
    npm install firebase-admin
  • 替换index.js中的Firebase初始化逻辑,移除原有客户端firebase的引入和初始化代码,替换为Admin SDK的初始化代码:
const admin = require('firebase-admin');
// 本地调试时引入你从Firebase控制台下载的服务账号密钥文件,部署到Firebase后会自动读取环境凭证无需手动传入
const serviceAccount = require('./你的服务账号密钥文件名.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});
  • 调整signup路由的用户创建逻辑,Admin SDK的创建用户方法与客户端不同,修改后的代码如下:
// Signup route
app.post("/signup", (req, res) => {
  const newUser = {
    email: req.body.email,
    password: req.body.password,
    confirmPassword: req.body.confirmPassword,
    handle: req.body.handle,
  };

  admin
    .auth()
    .createUser({
      email: newUser.email,
      password: newUser.password,
      displayName: newUser.handle
    })
    .then((userRecord) => {
      return res
        .status(201)
        .json({ message: `user ${userRecord.uid} signed up successfully` });
    })
    .catch((err) => {
      console.error(err);
      return res.status(500).json({ error: err.code });
    });
});

可选兼容方案

如果你需要完全匹配教程中的客户端SDK写法,可以将firebase包降级到v8版本,无需替换为Admin SDK,执行如下命令即可:
npm install firebase@8.10.0
该方案不推荐用于生产环境,服务端场景下Admin SDK的权限控制、运行适配性都优于客户端SDK。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:39:03