firebase - firebase 从远程部署托管(谷歌存储)
问题描述
我有一个单页应用程序,我想托管在不同的 gcp 项目中,即不同的 firebase 项目。
部署应该持续到我的 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 将一堆文件部署到 firebase 托管。在 firebase 内部,功能应该与此类似地实现,因为在 firebase 控制台中,用户可以简单地回滚到托管应用程序的先前版本,但是似乎没有关于此的文档。
解决方案
好的,我发现有一个用于 firebase 托管的官方 REST API,使用起来有点麻烦。 https://firebase.google.com/docs/hosting/reference/rest/v1beta1/sites.versions/create 配置的格式与firestore.json中通常提供的不同,需要上传的文件在一个创建发布之前的版本中的状态机方式。
不过,在我看来,这不是一个可供选择的解决方案。
推荐阅读
- c++ - glfw3 窗口在随机时间后冻结
- javascript - 使用 reduceRight() 组合多个参数的函数 - JavaScript
- vba - 如何检查对象是否是用户窗体?
- c# - 如何使 webBrowser 背景颜色透明
- r - 试图过滤()列的因素
- matlab - 将 Matlab 基于问题的公式转换为基于求解器的公式中的 ILP 变量映射
- r - 指定 R doParallel 的核心数
- python - 无法在 python 中启动 h2o - 但它适用于 R - 连接被拒绝
- python - 乳清使用 numpy.save/numpy.load 将浮点数组的 numpy 数组保存到 .npy 文件,数组的顺序会改变有什么原因吗?
- javascript - array.forEach 有效,但当我在里面嵌套另一个时无效