更新/部署时触发Firebase预定功能

更新/部署时触发Firebase预定功能,firebase,google-cloud-functions,google-cloud-scheduler,Firebase,Google Cloud Functions,Google Cloud Scheduler,我对firebase计划云函数有一些意外行为。该功能设置为每晚凌晨4点运行,并按预期工作。使用firebase cli deploy部署云功能时,会立即执行此功能。不管它是否被改变 我一直在试图弄清楚这种情况何时发生,因为并非每次部署都会发生。这似乎只发生在每天第一次部署时。如果我再次部署云函数,部署完成后,计划的函数不会再次执行 是否有任何时候计划的功能会在部署时立即运行?我怎样才能防止这种情况发生 编辑:添加了示例代码。 我还做了一些测试。不需要的执行以某种方式与cron计划相关联 我每1

我对firebase计划云函数有一些意外行为。该功能设置为每晚凌晨4点运行,并按预期工作。使用firebase cli deploy部署云功能时,会立即执行此功能。不管它是否被改变

我一直在试图弄清楚这种情况何时发生,因为并非每次部署都会发生。这似乎只发生在每天第一次部署时。如果我再次部署云函数,部署完成后,计划的函数不会再次执行

是否有任何时候计划的功能会在部署时立即运行?我怎样才能防止这种情况发生


编辑:添加了示例代码。 我还做了一些测试。不需要的执行以某种方式与cron计划相关联

我每15分钟将函数更改为.schedule('*/15****'),结果如下

13.00-按计划执行功能
13.05-再次部署功能。再次执行预定功能
13.10-再次部署功能。没有执行任何函数
13.15-按计划执行的功能

所以我想说,计划执行后的第一次部署会导致函数再次执行,而后续部署则不会。 在每次部署中,我都更新了一个console.log,我可以看到执行的是以前的版本

我还可以提到,所有内容都是用打字脚本编写的
firebase管理员:8.9.0,
firebase功能:3.3.0
firebase工具:7.7.0

import*作为“firebase函数”中的函数;
从“firebase admin”导入*作为管理员;
export const scheduledFunction=函数
.区域(“欧洲西部2”)
.runWith({memory:functions.VALID\u memory\u OPTIONS[3],timeoutSeconds:functions.MAX\u TIMEOUT\u SECONDS})
pubsub.先生
.时间表('04***')//每天04.00
.时区(“欧洲/斯德哥尔摩”)
.retryConfig({retryCount:2})
.onRun(异步(上下文)=>{
//函数代码。。。
});
索引

import*作为“firebase函数”中的函数;
从“firebase admin”导入*作为管理员;
//初始化firebase管理员
admin.initializeApp(functions.config().firebase);
从“./scheduledFunction”导入{scheduledFunction};
导出{scheduledFunction};
…导入其他功能

能否使用
--debug
运行部署,并查看它是否涉及删除和重新创建计划?它不应该假设您没有更改计划,但这可能是原因…您是否可以使用导致此行为的完整、最少的部署代码来编辑问题?使用--debug运行部署。我找不到有关删除和重新创建计划的任何信息。HTTP请求补丁cloudscheduler.googleapis.com/v1beta1/projects/…时区=欧洲/斯德哥尔摩,计划=0 4***,retryCount=2,name=projects…,topicName=projects/…,计划=true@MichaelBleigh您是否建议更改时间表将自动触发该功能?是否有相关文档可供您参考?我看到了与OP相同的行为。我无法预测它何时将自动运行更新的函数。@jmargolisvt OP没有提到我,所以我没有看到更新。我建议将您的观察结果发送给Firebase支持部门,以便他们进行调查。