Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase云函数:如何更新多个函数使用的值_Javascript_Firebase_Google Cloud Platform_Google Cloud Functions - Fatal编程技术网

Javascript Firebase云函数:如何更新多个函数使用的值

Javascript Firebase云函数:如何更新多个函数使用的值,javascript,firebase,google-cloud-platform,google-cloud-functions,Javascript,Firebase,Google Cloud Platform,Google Cloud Functions,我有多个使用单个值的云函数,基本上是这样的: index.js 问题是,我想更改emailFooter返回的页脚内容,但为了做到这一点,根据我的研究,我首先必须在代码中更改页脚内容,然后部署使用emailFooter sendEmailSuccess和sendEmailFailure的每个云函数,以便页脚在每种类型的电子邮件上看起来都相同 当然,我可以使用firebase deploy-only函数同时部署所有函数,但我们过去是多个开发人员,我们中的一些人更新了函数,以至于我们不知道index.

我有多个使用单个值的云函数,基本上是这样的:

index.js

问题是,我想更改emailFooter返回的页脚内容,但为了做到这一点,根据我的研究,我首先必须在代码中更改页脚内容,然后部署使用emailFooter sendEmailSuccess和sendEmailFailure的每个云函数,以便页脚在每种类型的电子邮件上看起来都相同

当然,我可以使用firebase deploy-only函数同时部署所有函数,但我们过去是多个开发人员,我们中的一些人更新了函数,以至于我们不知道index.js中的哪些函数与GCP中的相同,大约有20个函数,我必须检查每个函数,这样我就不会部署旧版本

有没有办法更新这个值,或者至少知道哪些函数是最新的


谢谢。

如果单个值只能由代码提供,那么如果不重新部署每个函数,就无法更新该值。函数实例之间不共享代码-每个实例都有自己的副本


如果您希望在函数之间共享一个值,并且该值可能会随时间而变化,则需要将该值放在其他位置,例如数据库。然后,每个函数都可以查询该值的其他来源,即使在该值发生更改后也是如此。

如果单个值只能由代码提供,则在不重新部署每个函数的情况下,无法更新该值。函数实例之间不共享代码-每个实例都有自己的副本

如果您希望在函数之间共享一个值,并且该值可能会随时间而变化,则需要将该值放在其他位置,例如数据库。然后,每个函数都可以查询该值的其他源,即使在该值发生更改之后也是如此

function emailFooter() {
    return `<div>email footer</div>`;
}

exports.sendEmailSuccess = functions.https.onCall(() => {
    const emailContent = 'success content' + emailFooter();
    sendEmail(emailContent) // fake email sender
});

exports.sendEmailFailure = functions.https.onCall(() => {
    const emailContent = 'failure content' + emailFooter();
    sendEmail(emailContent) // fake email sender
});