Firebase托管将重写为云功能

时间:2019-10-13 11:10:24

标签: firebase google-cloud-functions firebase-hosting

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

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

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

但是它不起作用。

我知道了

  

错误:禁止

     

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

(funcName)是我不想在此处显示的真实函数名称。

2 个答案:

答案 0 :(得分:2)

您的重写应包括函数的确切名称。重写系统不支持您在Express中使用的命名通配符路由。如果您想通配带前缀的所有URL,请按照文档中的说明使用glob syntax supported by Firebase Hosting

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

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

答案 1 :(得分:1)

我不确定您是如何发出该错误消息的,但是从我可以很快看到的错误消息中,该错误消息来自Cloud Functions或Firebase Hosting与您的Cloud Function之间的某种东西。

鉴于错误消息来自何处,Firebase Hosting将无法为响应隐藏它。