使用自定义域托管重写功能不起作用
Hosting rewrite with custom domain for function doesn't work
我正在尝试使用域设置 firebase,以便:
- 我的函数在 mydomain 上可用。com/api/functionName
- 我的主机在 mydomain.com 上可用(或者最好是 mydomain.com/client/,但另一个也可以)
我的 firebase.json
看起来像这样:
{
"hosting": {
"public": "build",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
},
{
"source": "/api/helloWorld",
"function": "helloWorld"
}
]
}
}
部署它并在浏览器中访问域后,/
和 /api/helloWorld
路由将始终将我带到我的客户端应用程序,而不是我的函数。
对我来说真正奇怪的是,当 运行 模拟器在本地时,托管根本不起作用,但 localhost:5000/api/helloWorld
按预期工作并调用函数。
我在这里做错了什么?感觉好像我的firebase.json
根本没有部署
更新
这是我的函数定义,如果与它有任何关系的话:
exports.helloWorld = functions
.region("europe-west3")
.https.onRequest((_, response) => {
response.send("Hello from Firebase!");
});
以“首场比赛获胜”的顺序重写作品。由于顶部有一个 **
,它将匹配所有 URL,并且永远不会访问第二次重写。如果您切换顺序,您应该会看到它按预期工作:
{
"hosting": {
// ...
"rewrites": [
{
"source": "/api/helloWorld",
"function": "helloWorld"
},
{
"source": "**",
"destination": "/index.html"
}
]
}
}
我正在尝试使用域设置 firebase,以便:
- 我的函数在 mydomain 上可用。com/api/functionName
- 我的主机在 mydomain.com 上可用(或者最好是 mydomain.com/client/,但另一个也可以)
我的 firebase.json
看起来像这样:
{
"hosting": {
"public": "build",
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
},
{
"source": "/api/helloWorld",
"function": "helloWorld"
}
]
}
}
部署它并在浏览器中访问域后,/
和 /api/helloWorld
路由将始终将我带到我的客户端应用程序,而不是我的函数。
对我来说真正奇怪的是,当 运行 模拟器在本地时,托管根本不起作用,但 localhost:5000/api/helloWorld
按预期工作并调用函数。
我在这里做错了什么?感觉好像我的firebase.json
根本没有部署
更新
这是我的函数定义,如果与它有任何关系的话:
exports.helloWorld = functions
.region("europe-west3")
.https.onRequest((_, response) => {
response.send("Hello from Firebase!");
});
以“首场比赛获胜”的顺序重写作品。由于顶部有一个 **
,它将匹配所有 URL,并且永远不会访问第二次重写。如果您切换顺序,您应该会看到它按预期工作:
{
"hosting": {
// ...
"rewrites": [
{
"source": "/api/helloWorld",
"function": "helloWorld"
},
{
"source": "**",
"destination": "/index.html"
}
]
}
}