使用自定义域托管重写功能不起作用

Hosting rewrite with custom domain for function doesn't work

我正在尝试使用域设置 firebase,以便:

我的 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"
      }
    ]
  }
}