【问题标题】:Firebase Hosting rewrites to Cloud FunctionsFirebase 托管重写为 Cloud Functions
【发布时间】:2019-10-13 11:10:24
【问题描述】:

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

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

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

但它不起作用。

我明白了

错误:禁止

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

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

【问题讨论】:

  • 你能分享一下你的Cloud Function的代码吗?
  • @RenaudTarnec 如果我键入真正的函数名而不是:funcName,该函数可以正常工作,与函数本身无关。只是如果我有 100 个函数,我不想设置 100 个重写条目,所以我正在寻找一些简单的方法,比如我提出的代码,这不起作用。

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


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    我不确定您是如何得到它来抛出该错误消息的,但据我所知,错误消息来自 Cloud Functions,或者来自 Firebase Hosting 和您的 Cloud Functions 之间的某些东西。

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

    【讨论】:

      猜你喜欢
      • 2018-10-02
      • 2017-11-03
      • 2021-07-03
      • 1970-01-01
      • 2020-10-12
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 2021-09-18
      相关资源
      最近更新 更多