首页 > 解决方案 > firebase 从远程部署托管(谷歌存储)

问题描述

我有一个单页应用程序,我想托管在不同的 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"
      }]
    }
  ]
}

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

标签: firebasegoogle-cloud-platformgoogle-cloud-storagefirebase-hosting

解决方案


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

不过,在我看来,这不是一个可供选择的解决方案。


推荐阅读