新建Firebase项目部署Scheduled Functions失败如何排查?
问题根源
你遇到的部署错误核心是两个问题:
- 函数部署区域和Cloud Scheduler的工作区域不匹配:部署日志显示默认在
us-central1创建函数,但你的项目Cloud Scheduler默认区域已设置为europe-west1,区域不匹配导致定时任务创建失败。 - 函数返回值不符合规范:定时函数的
onRun回调要求返回Promise或null,你直接返回console.log的返回值不符合要求,也可能引发部署异常。
解决步骤
- 统一指定部署区域,两种方式二选一即可:
- 代码中显式给当前定时函数指定和Scheduler一致的区域,修改
index.js代码如下:
const functions = require('firebase-functions'); exports.scheduledFunction = functions.region('europe-west1').pubsub .schedule('every 1 minutes') .onRun((context) => { console.log('This will be run every 1 minutes!'); return null; });- 给所有函数设置全局默认部署区域,修改项目根目录的
firebase.json,添加region配置:
{ "functions": { "region": "europe-west1", "source": "functions" } } - 代码中显式给当前定时函数指定和Scheduler一致的区域,修改
- 确认Cloud Scheduler默认区域:进入Google Cloud控制台的Cloud Scheduler页面,顶部显示的默认区域一旦设置无法修改,必须保证函数部署区域和该区域完全一致。
修改完成后重新执行firebase deploy即可完成部署。
内容的提问来源于stack exchange,提问作者Freddy.
相关产品推荐
相关产品推荐

