如何阻止Firebase功能每个Cloud Function执行一次本地功能?

时间:2018-11-24 18:59:54

标签: javascript typescript firebase google-cloud-functions

因此,我正在使用Spotify API进行搜索。在本地,我使用tsc和node测试了我的代码;一切都按预期进行。

但是,当我部署index.ts时,日志表明有些奇怪的行为。

在文件顶部,我有以下内容:

Doctrine\Bundle\MongoDBBundle\DoctrineMongoDBBundle::class => ['all' => true],

问题在于日志表明我的index.js文件中的每个Firebase-Cloud Function运行一次Spotify访问令牌功能。我得到了十几个令牌,每个令牌都显示在日志中,这是从我的firebase-cloud函数之一调用的。

当我上传整个index.ts时,如何告诉Firebase Functions一次运行此代码?当我上传一个函数时不运行它;那也很有用。

谢谢。

1 个答案:

答案 0 :(得分:1)

index.js的顶级代码在Cloud Functions实例化的每个容器中运行,以确保正确初始化容器以运行您的函数。由于Cloud Functions可以实例化多个容器,因此代码可以运行多次。

无法控制Cloud Functions实例化的容器数量。如果您不想让代码在每个容器中运行,请不要在index.js中将其设为顶级代码。

例如,您可以在调用函数时按需创建Spotify凭据。这样可以确保凭据仅在实际调用了函数的容器上,尽管这确实意味着在容器中对函数的首次调用将需要获取Spotify凭据,因此需要更长的时间才能完成。