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

我试图通过firebase函数来路由子域中的每个url。这是我的配置:

函数文件:

const functions = require('firebase-functions');

exports.handleWebRequest = functions
  .region('europe-west1')
  .https
  .onRequest((req, res) => {
    res.send('Currently down.');
  });
My
firebase.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+资产?这会更贵/性能更低吗?我不清楚你的建议是什么。也许你可以试一试,如果你被困在这个问题上,再发一个问题?谢谢,我们会接受你的答案或其他答案,这取决于我们决定使用什么。