在 Firebase Cloud Functions v1 中,可以在函数签名中为计划函数配置时区。
exports.v1ScheduledFunction = functions.pubsub.schedule("every day 00:00")
.timeZone("Etc/GMT+12")
.onRun(async (context) => {
...
});
但是,随着 v2 中语法的变化,这种情况发生了变化。
exports.v2ScheduledFunction = onSchedule("every day 00:00", async (event) => {
...
});
文档说 v2 可以采用 Unix Crontab 和 App Engine 语法作为字符串计划。但是,我认为您无法在 Unix Crontab 或 App Engine 语法中指定时区。有没有办法在代码中为 v2 中的预定函数指定时区?如果不行的话怎么办?
根据 API 参考,第一个参数是时间表或
scheduler.ScheduleOptions
对象。仅供参考:此选项对象还可以包含 GlobalOptions
中的选项(secrets
、region
等)。
要指定时区,您可以使用:
exports.v2ScheduledFunction = onSchedule(
{
schedule: "every day 00:00",
timeZone: "Etc/GMT+12"
},
async (event) => {
// your function code
}
)