Firebase部署错误:必须使用“提供公用目录”;“公众”;在每个;主办";配置

Firebase部署错误:必须使用“提供公用目录”;“公众”;在每个;主办";配置,firebase,google-cloud-functions,firebase-hosting,Firebase,Google Cloud Functions,Firebase Hosting,我在这一页上学习了教程。当我最终到达需要部署此项目的步骤11时,我遇到了以下错误: “必须在每个“托管”配置中使用“public”提供公共目录。”。在谷歌搜索之后,我将firebase.jsom改为: { "functions": { "source": "functions" }, "hosting": { "rewrites": [ { "source": "/oauthcallback", "function": "o

我在这一页上学习了教程。当我最终到达需要部署此项目的步骤11时,我遇到了以下错误: “必须在每个“托管”配置中使用“public”提供公共目录。”。在谷歌搜索之后,我将firebase.jsom改为:

{
  "functions": {
    "source": "functions"
  },
  "hosting": {
    "rewrites": [
      {
        "source": "/oauthcallback",
        "function": "oauthcallback"
      },
      {
        "source": "/authgoogleapi",
        "function": "authgoogleapi"
      },
      {
        "source": "/testsheetwrite",
        "function": "testsheetwrite"
      }
    ]
  }
}
为此:

{
  "functions": {
    "source": "functions"
  },
  "hosting": {
    "public": "functions",
    "rewrites": [
      {
        "source": "/oauthcallback",
        "function": "oauthcallback"
      },
      {
        "source": "/authgoogleapi",
        "function": "authgoogleapi"
      },
      {
        "source": "/testsheetwrite",
        "function": "testsheetwrite"
      }
    ]
  }
}

它起到了帮助作用,项目成功部署,但在步骤12,我得到了错误“未找到站点”。在更多的谷歌搜索之后,我发现了这个,但我不明白最后的评论。完整的firebase部署包括托管意味着什么

他所说的是官方文档摘要,它指出了Firebase应用程序的
托管部分。这可以通过使用命令
firebase init
实现。一旦运行,它将创建
firebase.json
文件,您需要该文件来配置路径、主机等

此外,如图所示:

使用firebase CLI部署资产需要firebase.json文件,因为它指定将项目目录中的哪些文件和设置部署到firebase项目中

因此,这意味着您需要运行“完整部署”,以便正确创建jsojn文件,并将项目中的托管配置添加到常量
函数\u重定向

一旦这样做了,您就不应该再有部署问题了


如果这些信息对你有帮助,请告诉我

谢谢你的邀请。但是这个项目已经有了
firebase.json
文件,github页面没有提到
firebase init
命令。不管怎样,我运行它,它说我已经有一些文件(
package.json,index.js
)我应该覆盖这些文件吗?嗨@Alexandrkrivobokov我会先保存你的文件,然后再覆盖,这样你就不会丢失你已经做过的。但我认为运行
firebase init
命令,然后使用用户指示的配置可能值得一试。因此,我运行
firebase init
,覆盖了所有内容。然后我用原始文件替换了functions文件夹中的文件(index.js、package.json、.eslintrc.json)。然后我启动了
firebase部署
。成功完成后,我从步骤12重新打开了页面。它说Firebase主机的安装已经完成。我在Firebase控制台中也看到了所有4个函数,但它们现在不起作用。我没有更改
函数\u REDIRECT
常量。你认为我应该改变这个常数,还是我在其他步骤中犯了错误?谢谢你帮助我认为这是一个好主意,@AlexsandrKrivobokov这样,你可以测试它,验证问题是相同的还是不同的。所以我按照这篇文章所写的那样做了。我在Google API中将我的授权重定向URI更新为{my-PROJECT-ID}.cloudfunctions.net/。更改了常量函数\u重定向。现在,当我转到authgoogleapi函数URL时,我得到一个错误:请求{MY-PROJECT-ID}.cloudfunctions.net/oauthcallback中的重定向URI与为OAuth客户端授权的URI不匹配。