Firebase从远程部署托管(Google存储)

时间:2020-04-08 10:02:15

标签: firebase google-cloud-platform google-cloud-storage firebase-hosting

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

应该对我的Firebase托管进行连续部署,我想将“持续构建”和“持续部署”步骤分开,因此我不想手动从本地计算机进行部署

我的问题是:

当我不想从本地计算机进行部署时,是否有最佳实践来部署到Firebase托管项目?


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

我需要构建一个zip文件,其中包含所有静态html和js文件以及我上传到存储桶的firebase.json和.firebaserc文件。 使用这些文件,firebase CLI工具可以执行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"
      }]
    }
  ]
}

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

1 个答案:

答案 0 :(得分:0)

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

还是,我认为这不是一个选择的解决方案。

相关问题