如何在Firebase托管中清除旧部署的版本?

Pie*_*ier 32 firebase firebase-hosting

每次部署到Firebase托管时,都会创建一个新的部署版本,以便您可以回滚并查看部署的人员.这意味着每次部署的每个文件都存储并占用更多空间.

除了逐个手动删除每个部署版本之外,还有任何自动清理这些无用文件的方法吗?

loo*_*p88 29

你说的没错.您需要使用Firebase托管控制台逐个删除旧部署的版本.

没有其他方法可以执行此操作,因此我建议您提交功能请求,以便在Firebase托管控制台中删除多个已部署的版本.

更新:

你可以在这里投票(请避免+1垃圾邮件,使用反应)https://github.com/firebase/firebase-tools/issues/215#issuecomment-314211730为团队提出的替代方案之一(批量删除,仅保留X版本,保留发布日期<Y的版本

  • @Pier请链接到您创建的功能请求,以便我们跟踪它.谢谢!编辑:我看到firebase上的功能请求不公开.那有点......不太好. (6认同)
  • 我填写了一个功能请求,但我怀疑它是否会实现.那好吧. (2认同)

AAv*_*rin 15

此脚本尚未超级坚固,因此使用它需要您自担风险.我稍后会尝试更新它,但现在为我工作.只需点击一些按钮即可逐个删除已部署的项目.

var deleteDeployment = function(it) {
    it.click()
    setTimeout(function() {
        $('.md-dialog-container .delete-dialog button.md-raised:contains("Delete")').click()
    }, 300)
}
$('.h5g-hist-status-deployed').map((i, a) => $(a).parent()).map((i, a) => $(a).find('md-menu button:contains(Delete)')).each((i, it) => {
    setTimeout(function() {
        deleteDeployment(it)
    }, (i + 1) * 2000)
})
Run Code Online (Sandbox Code Playgroud)


nat*_*han 11

更新于2019年2月:由Google员工确认(https://github.com/firebase/firebase-tools/issues/215#issuecomment-461582030)

它正在积极开展工作.


在继续阅读之前:

你可以在这里投票(请避免+1垃圾邮件,使用反应)https://github.com/firebase/firebase-tools/issues/215#issuecomment-314211730为团队提出的替代方案之一


因此,通过使用Chrome Dev工具,我找到了删除多个版本的方法.请记住,它需要一点工作(小心,因为删除的版本无法恢复,你不会得到任何警告,如使用UI).

步骤1.检索版本列表.

  1. 打开Chrome开发工具(如果你不知道如何机会,你应该等待Firebase团队的正确解决方案).
  2. 打开Firebase的控制台,然后转到"主机"标签.
  3. 转到CDT上的"网络"选项卡,然后使用Websockets过滤器.
  4. 选择名为的请求 .ws?v=5&ns=firebase
  5. 打开"框架"选项卡
  6. 现在是繁琐的部分:选择具有最高"长度"值的帧.(根据您的数据,它可能是2-n帧.在我的情况下,3帧,长度为14k-16k)
  7. 按顺序粘贴每个框架的数据(这将形成一个有效的JSON对象).
  8. 提取数据:有几种方法可以做到这一点.我在CDT的控制台上选择了简单的JS.
    var jsonString = '...';
    var json = JSON.parse(jsonString);
    var ids = Object.keys(json.d.b.d);
Run Code Online (Sandbox Code Playgroud)

第2步.执行请求

几乎就在那里:P

现在您已拥有ID,请执行以下请求:

删除https://firebasehosting.clients6.google.com/v1beta1/sites/PROJECT_NAME/versions/-VERSION_ID?key=KEY

我使用Sublime(创建请求字符串)+ Paw.

可以从CDT的任何请求中复制"KEY".它与Firebase的Web API密钥不匹配

=>在执行请求之前:记下您不希望从Firebase提供的表中删除的版本.(网站上列出的每个版本都包含您电子邮件中其ID的最后6位数字)

(没有提供截图,因为所有这些都需要模糊和一些工作)


Pie*_*ier 5

Firebase最终为此实现了解决方案。

现在可以设置保留版本的限制。

https://firebase.google.com/docs/hosting/deploying#set_limit_for_retained_versions

编辑:以前的链接已过时。这是一个有效的新链接:

https://firebase.google.com/docs/hosting/usage-quotas-pricing#control-storage-usage