Firebase deploy Error: Must supply a public directory using "public" in each "hosting" config

Firebase deploy Error: Must supply a public directory using "public" in each "hosting" config

我正在关注此页面上的教程 https://github.com/firebase/functions-samples/tree/master/google-sheet-sync。当我最终到达需要部署该项目的第 11 步时,出现了以下错误: “必须在每个 "hosting" 配置 中使用 "public" 提供 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 步我收到错误“SITE NOT FOUND”。经过更多谷歌搜索后,我发现了这个 https://github.com/firebase/functions-samples/issues/446,但我不明白最后的评论。包含托管手段的完整 firebase 部署是什么?

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

此外,如official documentation所示:

The firebase.json file is required to deploy assets with the Firebase CLI because it specifies which files and settings from your project directory are deployed to your Firebase project.

因此,这意味着您需要 运行 "full deploy",这样您就可以正确创建 jsojn 文件并添加项目中的托管配置,如 this comment 中所示到常量 FUNCTIONS_REDIRECT

完成后,您应该不会再遇到部署问题了。

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