firebase 从远程部署托管(谷歌存储)

Seb*_*ees 5 google-cloud-storage firebase google-cloud-platform firebase-hosting

我有一个单页应用程序,我想在不同的 gcp 项目中托管它,即不同的 firebase 项目。

部署应该持续到我的 firebase 托管,我想分开持续构建和持续部署步骤,因此我不想从我的本地机器手动部署到我的所有 firebase 项目。

我的问题是:

当我不想从本地机器部署时,是否有部署到 Firebase 托管项目的最佳实践?


以我天真的方式,我将设置以下内容:

我需要构建一个 zip 文件,其中包含所有静态 html 和 js 文件以及我上传到存储桶的 firebase.json 和 .firebaserc 文件。有了这些文件,firebaseCLI 工具就可以执行firebase deploy --only hosting:mytarget. 谷歌云构建器可以在 git push(例如来自 github.com)上运行这个命令,它知道我想要将单页应用程序部署到的所有 gcp 项目......

然而,这是很多工作,也许有一个更好的解决方案。我试图将 gs:// 链接直接放到 firebase.json 托管/公共部分,但是 firebase CLI 无法识别(它需要一个本地文件夹):-(

{
  "hosting": [
    {
      "target": "mySPAApp",
      "public" : "gs://mystorage-containing-files-for-hosting/",
      "rewrites": [
        {
          "source": "apps/myapp/**",
          "destination": "myapp/index.html"
      }]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我的直觉是,必须有一种更简单的方法,甚至可以使用gcloudCLI 将一堆文件部署到 Firebase 托管。在 firebase 内部,功能应该与此类似,因为在 firebase 控制台中,用户可以简单地回滚到托管应用程序的先前版本,但似乎没有关于此的文档。

Seb*_*ees 0

好吧,我发现 Firebase 托管有一个官方的 REST API,使用起来有点麻烦。 https://firebase.google.com/docs/hosting/reference/rest/v1beta1/sites.versions/create 配置的格式与 firestore.json 中通常提供的格式不同,并且需要在 a 中上传文件在创建发布之前,版本中的状态机方式。

在我看来,这仍然不是一个可以选择的解决方案。