有没有办法指定部署我的firebase功能的区域/区域。
实际上我在文档中没有发现任何相关内容,我的功能总是部署到我们中心1但是我希望在eu-central1上有...
是否可以在Firebase中进行设置 - 配置 - 文件?
{
"database": {
"rules": "database.rules.json"
},
"hosting": {
"public": "public",
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
我也看过cli选项,但我没有找到任何东西。
Firebase项目本身已正确设置为欧洲区域o.O
提前致谢
答案 0 :(得分:21)
firebaser here
更新(2018-07-25):
现在可以在Firebase中为您的云功能指定区域,在代码中指定该区域并部署更改。 E.g:
exports.myStorageFunction = functions
.region('europe-west1')
.storage
.object()
.onFinalize((object) => {
// ...
});
有关详细信息,请参阅Firebase documentation on Cloud Functions locations(我从上面获取上述代码段)和modifying the region of a deployed function。
答案 1 :(得分:9)
来自文档:https://firebase.google.com/docs/functions/locations
现在在以下地区可用:
// before
const functions = require('firebase-functions');
exports.webhook = functions
.https.onRequest((req, res) => {
res.send("Hello");
});
// after
const functions = require('firebase-functions');
exports.webhookEurope = functions
.region('europe-west1')
.https.onRequest((req, res) => {
res.send("Hello");
});
答案 2 :(得分:5)
要对所有功能使用相同的自定义区域,请执行以下操作。
import * as functions from 'firebase-functions';
const regionalFunctions = functions.region('europe-west1');
export const helloWorld = regionalFunctions.https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
export const helloWorld2 = regionalFunctions.https.onRequest((request, response) => {
response.send("Hello from Firebase 2!");
});
答案 3 :(得分:0)
要将Firebase功能部署到某个区域也可以在本地仿真中运行,必须这样初始化客户端:
const functions = LOCAL ? firebase.app().functions(/*functionsRegion*/) :
firebase.app().functions(functionsRegion);
const fun = functions.httpsCallable('your_function_name');
即代码不相同。在模拟情况下添加区域会使呼叫丢失,而不会出现错误。
LOCAL
是我已经知道的客户端值,无论后端是在云中运行还是设置为本地仿真。
当然,这是Firebase可以解决的一个极端情况吗?
firebase-tools 8.6.0,firebase
7.16.1
答案 4 :(得分:0)
"rewrites": [
{
"source": "**",
"run": {
"serviceId": "<service id>",
"region": "europe-west1"
}
}
]
},