部署Firebase定时函数报错:async_hooks_1.AsyncLocalStorage不是构造函数
解决Firebase定时函数部署时的
AsyncLocalStorage is not a constructor错误 错误原因
这个错误是由于Node.js版本过低导致的:AsyncLocalStorage是Node.js 12.17.0及以上版本才内置的API,如果Firebase Functions运行时指定了低于该版本的Node环境,或者依赖包版本不兼容,就会触发这个错误。
解决方案
1. 配置正确的Node.js运行时版本
在函数项目根目录的package.json中,添加或修改engines字段,指定Firebase支持的Node.js版本(目前推荐18或20):
"engines": { "node": "18" }
2. 更新Firebase依赖包
确保firebase-functions和firebase-admin是与指定Node版本兼容的最新版本,执行以下命令:
npm install firebase-functions@latest firebase-admin@latest --save
3. 清理并重新安装依赖
删除项目目录下的node_modules文件夹和package-lock.json文件,然后重新安装依赖:
rm -rf node_modules package-lock.json npm install
4. 重新部署函数
再次执行部署命令:
firebase deploy --only functions
代码验证
你的index.js代码本身没有语法或逻辑问题,只要环境配置正确,定时函数就能正常部署运行。
内容的提问来源于stack exchange,提问作者Augusto
相关产品推荐
相关产品推荐

