部署FIREBASE报错:There was an error deploying functions 如何解决
云函数部署失败排查方案
- 依赖包缺失校验
代码中引入了google-spreadsheet第三方库,需进入项目的functions目录执行安装命令npm install google-spreadsheet,确认该依赖已写入functions/package.json的dependencies字段。云函数部署环境仅会自动安装该字段下声明的依赖,未声明的依赖会直接导致代码加载失败。 - Node.js版本兼容问题
当前使用的Node.js 12运行环境已停止维护,且google-spreadsheetv4及以上版本最低要求Node.js 14,可任选以下一种方案解决:- 降级
google-spreadsheet到兼容Node.js 12的v3版本,执行命令npm install google-spreadsheet@3 - 升级云函数运行版本,在
functions/package.json中添加如下配置:
{ "engines": { "node": "16" } } - 降级
- HTTP触发器响应规则校验
HTTP类型的云函数必须向调用方返回响应,否则会触发超时错误。需在函数逻辑末尾添加返回语句,修改后代码参考:
// Initialize Cloud Firestore through Firebase const { initializeApp } = require("firebase-admin/app") const { getFirestore } = require("firebase-admin/firestore") const functions = require('firebase-functions'); const { GoogleSpreadsheet } = require('google-spreadsheet'); initializeApp(); exports.testeadm = functions.https.onRequest(async(req, res) => { console.log("teste") const doc = new GoogleSpreadsheet("你的文档ID") await doc.useServiceAccountAuth({ "private_key": "你的服务账号私钥", "client_email": "你的服务账号邮箱" }); await doc.loadInfo(); console.log(doc.title) // 新增返回响应 res.status(200).send(`文档加载完成,标题:${doc.title}`) })
- 认证信息格式校验
检查代码中填写的服务账号private_key格式是否正确,尤其注意密钥中的\n换行符是否正确转义,避免出现引号遗漏、转义错误的问题。
内容的提问来源于stack exchange,提问作者Rodrigo Fiad Pasini
相关产品推荐
相关产品推荐

