当您修改许多其他函数使用的代码时,Firebase如何更新一个可调用函数



我发现自己经常遇到这种情况,我找不到一个明确的解释,什么是正确的方法。

假设您有(n)个可调用函数,(m)个触发器,它们都使用您要更新的内部代码段。您应该部署使用该代码的所有函数,还是更新其中一个函数将传播到其他函数?

PS:当我部署整个项目时,它通常会失败。所以现在我只单独部署函数,这似乎工作得更好。但是一个接一个地部署函数是非常繁琐的。甚至当我部署一个函数列表时,它也失败了即:firebase deploy --only functions:function1,function2

不知道你问题的答案,我用打字稿做了一个快速测试。

exports.testing1 = functions.https.onCall(test1);
exports.testing2 = functions.https.onCall(test2);
export async function getString(): Promise<(String)>{
return("Hello test");
//return "Hello World";
}
export async function test1(){
//console.log("New test1");
console.log(await getString());
}
export async function test2(){
console.log(await getString());
}

我添加了这些函数,然后在辅助函数中将hello world的返回hello测试切换出来,并添加了注释掉的New test 1打印。然后我运行

firebase deploy --only functions:testing1

然后再次调用两个函数。Testing1更新到新的输出,testing2没有。

1似乎每个函数都完全编译,并在自己的运行时环境中运行,这对于稳定性和可伸缩性来说是有意义的。因此,我们可以得出这样的结论:更新一个辅助函数而不更新整个项目可能会导致一些函数使用旧的辅助函数。

最新更新