当使用firebase.json或.firebaserc文件将函数部署到firebase时,是否有一种方法可以定义使用哪个区域?关于这一点的文档似乎并不清楚。使用GitHub Actions部署firebase函数,并希望尽可能避免在代码中添加区域。建议?
firebase.json
.firebaserc
ajsxfq5m1#
使用您提到的配置是不可能的。必须使用提供的API在代码中同步定义该区域。您也许可以使用fs.readFileSync()在index.js的全局作用域中拉入一个外部JSON文件,解析其内容,并将其应用于函数构建器。(请注意,您必须a同步地 * 执行此操作-您不能使用返回承诺的方法。)
ryevplcw2#
我已经使用本机函数config解决了这个问题。示例:
firebase functions:config:set functions.region=southamerica-east1
然后在函数声明中,我会如下所示:
const { region } = functions.config().functions; exports.myFunction = functions.region(region).https.onCall((data) => { // do something });
这样,每当我需要一个不同的区域时,它只需要一个新的配置集。
8yoxcaq73#
从Firebase工具版本v11.24.0开始,现在可以为全栈Web框架设置函数区域。配置示例:
{ "hosting": { "source": ".", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "frameworksBackend": { "region": "europe-west1" } } }
你可以阅读更多的here和here。注意:这只适用于框架感知托管(like this)。
3条答案
按热度按时间ajsxfq5m1#
使用您提到的配置是不可能的。必须使用提供的API在代码中同步定义该区域。您也许可以使用fs.readFileSync()在index.js的全局作用域中拉入一个外部JSON文件,解析其内容,并将其应用于函数构建器。(请注意,您必须a同步地 * 执行此操作-您不能使用返回承诺的方法。)
ryevplcw2#
我已经使用本机函数config解决了这个问题。
示例:
然后在函数声明中,我会如下所示:
这样,每当我需要一个不同的区域时,它只需要一个新的配置集。
8yoxcaq73#
从Firebase工具版本v11.24.0开始,现在可以为全栈Web框架设置函数区域。
配置示例:
你可以阅读更多的here和here。
注意:这只适用于框架感知托管(like this)。