监听Firebase Cloud Functions目录时遇node16部署错误,如何解决?
错误原因
Firebase 已终止对 Node.js 16 运行时的官方支持——Node.js 16 的生命周期已于2023年9月结束,Firebase 同步移除了该版本运行时的部署权限,因此无法再使用node16作为 Cloud Functions 的运行时。
解决方法
- 升级本地 Node.js 版本:将本地 Node.js 升级至 v18 及以上的 LTS 版本(如 v18.x、v20.x),可通过
nvm或官方安装包完成升级,验证版本:node -v - 修改 firebase.json 配置:将配置中
functions下的runtime字段从node16替换为node18(或更高支持版本):"functions": [ { "source": "dist/apps/andika-backend", "codebase": "default", "ignore": [ "node_modules", ".git", "firebase-debug.log", "firebase-debug.*.log" ], "predeploy": [ "node tools/scripts/build-gc-functions-package.js" ], "runtime": "node18" // 此处修改为支持的版本 } ] - 更新 Functions 包配置:在你的 Functions 目录(
dist/apps/andika-backend)的package.json中,更新engines字段以匹配新的 Node.js 版本:"engines": { "node": "18" } - 升级 Firebase CLI:确保 Firebase CLI 为最新版本,以兼容新的运行时:
npm install -g firebase-tools - 重新构建并测试:执行预部署脚本重新构建项目,再尝试启动监听或部署:
# 重新构建 node tools/scripts/build-gc-functions-package.js # 启动本地模拟器监听 firebase emulators:start --only functions # 或部署 firebase deploy --only functions
错误截图说明
截图核心报错信息:Failed to load function definition from source: FirebaseError: Cannot deploy function with runtime node16,与文字描述的错误一致。
内容的提问来源于stack exchange,提问作者Philip Mutua
相关产品推荐
相关产品推荐

