Firebaseにデプロイするたびに、新しいデプロイバージョンがホストされるため、ロールバックして誰がデプロイされたかを確認できます。これは、展開するすべてのファイルが保存されるたびに、より多くのスペースを占有することを意味します。
デプロイされた各バージョンを1つずつ手動で削除する以外に、これらの不要なファイルを自動的に削除する方法はありますか?
Firebasefinallyはこのためのソリューションを実装しました。
保持されるバージョンの制限を設定できるようになりました。
https://firebase.google.com/docs/hosting/deploying#set_limit_for_retained_versions
正解です。 Firebase Hostingコンソールを使用して、古い展開バージョンを1つずつ削除する必要があります。
これを行う方法は他にないので、Firebase Hostingコンソールで複数のデプロイ済みバージョンの削除を有効にするために 機能要求 を提出することをお勧めします。
更新:
ここで投票できます(スパム+1を避け、反応を使用してください) https://github.com/firebase/firebase-tools/issues/215#issuecomment-3142117 は、チーム(バッチ削除、Xバージョンのみを保持、公開日<Yのバージョンを保持)
このスクリプトはまだ非常に強固ではないため、自己責任で使用してください。後で更新しようとしますが、今のところはうまくいきました。ボタンをクリックして展開されたアイテムを1つずつ削除するJavaScriptだけです。
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)
})
現在、適切な解決策があります: "Version history settings"これにより、最新のXバージョンを保持できます。
https://support.google.com/firebase/answer/9242086?hl=en
2019年2月更新
Google従業員による確認@ github.com/firebase/firebase-tools/issues/...
積極的に取り組んでいます。 ????
????????????
読み続ける前に:
ここで投票できます(+1スパムを避け、反応を使用してください) https://github.com/firebase/firebase-tools/issues/215#issuecomment-3142117 は、チーム
だから、Chrome Devツールを使用して、複数のバージョンを削除する方法を見つけました。削除されたバージョン以来、注意して進めてください復元できません。UIを使用するときのような警告は表示されません)。
.ws?v=5&ns=firebase
という名前のリクエストを選択します var jsonString = '...';
var json = JSON.parse(jsonString);
var ids = Object.keys(json.d.b.d);
ほぼそこに:P
IDを取得したら、次のリクエストを実行します。
削除 https://firebasehosting.clients6.google.com/v1beta1/sites/PROJECT_NAME/versions/-VERSION_ID?key=KEY
Sublime(リクエスト文字列を作成するため)+ Pawを使用しました。
「KEY」は、CDTのリクエストからコピーできます。 FirebaseのWeb APIキーと一致しません
=>リクエストを実行する前に、Firebaseが提供するテーブルから削除したくないバージョンに注意してください。 (ウェブサイトにリストされている各バージョンには、メールの下にIDの最後の6桁があります)
(スクリーンショットはすべてぼかしと少しの作業が必要になるため、提供されませんでした)
セレクターが現在のDOM構造とホスティングダッシュボードのクラスに依存しているため、これは少し脆弱かもしれませんが、私にとってはうまくいきます!
注:このスクリプト(コンソールから実行する場合)またはブックマークレットは、現在のビューのすべての行をクリックして削除を確認します。現在の展開で[削除]をクリックしても、削除されないことは確かです。
コンソールで実行するための機能:
let deleteAllHistory = () => {
let deleteBtns = document.querySelectorAll('.table-row-actions button.md-icon-button');
const deleteBtn = (pointer) => {
deleteBtns[pointer].click();
setTimeout(() => {
document.querySelector('.md-open-menu-container.md-clickable md-menu-item:last-child button').click();
setTimeout(() => {
document.querySelector('.fb-dialog-actions .md-raised').click();
if(pointer < deleteBtns.length - 1) {
deleteBtn(pointer + 1);
}
}, 500);
}, 500);
};
deleteBtn(0);
};
ブックマークレット:
javascript:(function()%7Bvar%20deleteBtns%3Ddocument.querySelectorAll('.table-row-actions%20button.md-icon-button')%2CdeleteBtn%3Dfunction(a)%7BdeleteBtns%5Ba%5D.click()%2CsetTimeout(function()%7Bdocument.querySelector('.md-open-menu-container.md-clickable%20md-menu-item%3Alast-child%20button').click()%2CsetTimeout(function()%7Bdocument.querySelector('.fb-dialog-actions%20.md-raised').click()%2Ca%3CdeleteBtns.length-1%26%26deleteBtn(a%2B1)%7D%2C500)%7D%2C500)%7D%3BdeleteBtn(0)%7D)()
Nathanのオプションは素晴らしいですが、AutoHotkeyを使用した手っ取り早い方法があります。バージョンごとに約1秒で削除されるため、10秒でページをノックアウトできます。
#a::
Click
MouseGetPos, xpos, ypos
MouseMove, xpos, ypos + 30
Sleep 300
Click
Sleep 400
Click 1456, 816
MouseMove, xpos, ypos + 82
return
#s::
Click
MouseGetPos, xpos, ypos
MouseMove, xpos, ypos - 820
return
画面の正確なピクセル値を変更する必要がある可能性が高いですが、これは私の1920x1080では完全に機能します。
Win + aは削除して次のエントリに移動し、Win + sは次のページに移動します。最初の3ドットメニューにマウスを置いて、それを始めましょう!