Cloud Functions for Firebase Scheduler 的时区没有改变

Time Zone of Cloud Functions for Firebase Scheduler does not change

我目前正在为 Firebase 调度程序创建和部署要在 Cloud Functions 中定期执行的函数,如下所示。 关键是我希望它每天在 0:05 日本时间作为 .timeZone('Asia/Tokyo').

执行

部署本身工作正常,但是当我查看GCP的Cloud Scheduler中的内容时,时区设置为(America/LosAngeles)如下图所示,实际执行时间为日本时间不对。

我在 Cloud Scheduler 功能管理屏幕中手动将时区更改为日本时间并确认达到了预期的行为,但是当我再次部署该功能时,它仍然设置为 (America/LosAngeles) .

我以为可能是受GCP本身区域的影响,我得换GCP的区域,但是没找到可以从哪里换。 但是,我认为我应该能够从代码中为每个函数指定 .timeZone。我很茫然。

我不知道如何解决这个问题,我想知道是否有人可以帮助我。

exports.XXX = functions.pubsub
.schedule('every day 0:05')
.timeZone('Asia/Tokyo')
.onRun((context) => {
///省略
});

提前谢谢你。

这可能与您的 CLI 版本有关,确保它已更新,如果您仍然遇到问题,您应该联系 firebase 支持以提交错误请求 HERE

另一种解决方案是可以在 Google Cloud Platform (GCP) resource location 中将区域设置为未定义。 请注意,除非您知道自己在做什么并且想要设置所有默认位置,否则不建议设置 GCP 位置。

参考:default-cloud-location

我也遇到过同样的问题。还有一个类似的问题 here 降级 firebase-tools 的解决方案对我有用。

firebaser 在这里

firebase-tools 9.12 版本中似乎存在一个错误,它强制所有 Cloud Functions 部署在太平洋时区,无论您在代码中设置的时区如何。

升级到版本 9.12.1 应该可以解决这个问题。有关此问题的更多详细信息,请参阅 Github 存储库中的 issue