首页 > 解决方案 > Firebase 托管重写为 Cloud Functions

问题描述

我想重写所有以“api/(funcName)”结尾的 URL 来调用云函数 (funcName)。

在 firebase.json 我设置重写规则如下。

"rewrites": [
  {
    "source": "api/:funcName",
    "function": ":funcName"
  },
  {
    "source": "**",
    "destination": "/index.html"
  }
] 

但它不起作用。

我有

错误:禁止

您的客户端无权从此服务器获取 URL /:funcName/api/(funcName)。

(funcName) 是我不想在这里显示的真实函数名。

标签: firebasegoogle-cloud-functionsfirebase-hosting

解决方案


您的重写应包括函数的确切名称。重写系统不支持您在 Express 中使用的命名通配符路由。如果您想对所有带有前缀的 URL 进行通配符,请使用Firebase Hosting 支持的 glob 语法,如文档中所述。

  {
    "source": "api/**",
    "function": "funcName"
  },

其中“funcName”是代码导出的函数名称。


推荐阅读