Firebase函数:通过函数路由每个URL,并从;主办";
我试图通过firebase函数来路由子域中的每个url。这是我的配置: 函数文件:Firebase函数:通过函数路由每个URL,并从;主办";,firebase,google-cloud-functions,firebase-hosting,Firebase,Google Cloud Functions,Firebase Hosting,我试图通过firebase函数来路由子域中的每个url。这是我的配置: 函数文件: const functions = require('firebase-functions'); exports.handleWebRequest = functions .region('europe-west1') .https .onRequest((req, res) => { res.send('Currently down.'); }); Myfirebase.jso
const functions = require('firebase-functions');
exports.handleWebRequest = functions
.region('europe-west1')
.https
.onRequest((req, res) => {
res.send('Currently down.');
});
Myfirebase.json
:
{
"hosting": {
"public": "dist",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"function": "handleWebRequest"
}
]
},
"functions": {
"source": "firebase-functions",
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
]
}
}
当我部署托管和功能并转到浏览器中的URL时,我希望看到我打开的每个路由都“当前关闭”。但是,除之外的每个路由根路由显示“当前关闭”消息,根路由显示我部署的index.html
因此,简而言之:
/
显示我的index.html
(我不想要)/which
显示“当前关闭”。(这是我想要的)
我之所以尝试通过函数路由所有内容,是因为我想用HTTP Basic Auth屏蔽网站,Firebase“不支持”HTTP Basic Auth。这很可能是因为您仍然在
public
文件夹下有index.html
文件
正如报告中所述:
注意:公共目录中的静态文件优先于
重写,因此任何静态文件都将与云一起提供
函数的端点
如果删除
index.html
文件,它将按您预期的方式工作。您的功能已部署到“europe-west1”区域,但Firebase主机目前仅支持默认的“us-central1”。这在以下文件中说明:
重要提示:Firebase主机仅支持us-central1中的云功能
非常感谢。是否可以在
europe-west1
中托管该功能,包括网站的HTML+资产?这会更贵/性能更低吗?我不清楚你的建议是什么。也许你可以试一试,如果你被困在这个问题上,再发一个问题?谢谢,我们会接受你的答案或其他答案,这取决于我们决定使用什么。