37 votes

Comment nettoyer les anciennes versions déployées dans l'hébergement Firebase ?

Chaque fois que vous vous déployez sur Firebase, une nouvelle version de déploiement est créée afin que vous puissiez revenir en arrière et voir qui a été déployé. Cela signifie que chaque fois que chaque fichier que vous déployez est stocké et occupe plus d'espace.

Autre que la suppression manuelle de chaque version déployée une par une, y at-il un moyen automatisé de nettoyer ces fichiers inutiles?

30voto

looptheloop88 Points 1498

Vous êtes correct. Vous devez supprimer les anciennes versions déployées, un par un à l'aide de la Firebase d'Hébergement de la console.

Il n'y a pas d'autre moyen de le faire, donc je vous suggère de déposer une demande de fonctionnalité pour permettre la suppression de plusieurs version déployée dans le Firebase d'Hébergement de la console.

Mise à jour:

Vous pouvez voter ici (merci d'éviter les +1 de spam, utilisation réactions) https://github.com/firebase/firebase-tools/issues/215#issuecomment-314211730 pour l'une des alternatives proposées par l'équipe (lot de supprimer, de conserver uniquement les versions X, garder les versions avec la date de publication < Y)

19voto

nathan Points 5502

Avant de continuer la lecture de:

Vous pouvez voter ici (merci d'éviter les +1 de spam, utilisation réactions) https://github.com/firebase/firebase-tools/issues/215#issuecomment-314211730 pour l'une des alternatives proposées par l'équipe de


Ainsi, en utilisant Chrome Dev tools, j'ai trouvé un moyen de supprimer plusieurs versions. Gardez à l'esprit, il nécessite un peu de travail (procéder avec soin, car supprimé les versions ne peuvent pas être restaurés et vous n'aurez pas de mises en garde, comme lors de l'utilisation de l'INTERFACE utilisateur).

Étape 1. Récupération de la liste des versions.

  1. Ouvrez google Chrome Dev Tools (si vous ne savez pas comment les chances sont que vous devez attendre une bonne solution par Firebase de l'équipe).
  2. Ouvrir Firebase de la Console et allez à la section "Hébergement" de l'onglet.
  3. Allez à l'onglet "Réseau" sur la CDT et de l'utilisation des Websockets filtre.
  4. Sélectionnez la demande nommée .ws?v=5&ns=firebase
  5. Ouvrez les "Cadres" de l'onglet
  6. Maintenant vient le côté fastidieux: Sélectionner les images avec le plus de "longueur" de la valeur. (En fonction de vos données, il pourrait être de 2-n images. Dans mon cas, les 3 images avec 14k-16k longueur)
  7. Coller chaque de la structure de données dans l'ordre (qui forme valide d'un objet JSON).
  8. Extraction des données: Il existe plusieurs façons de le faire. J'ai opté pour de simples JS sur le CDT de la console.
    var jsonString = '...';
    var json = JSON.parse(jsonString);
    var ids = Object.keys(json.d.b.d);

Étape 2. Effectuer les demandes de

On y est presque :P

Maintenant que vous avez de l'IDs, effectuer les demandes suivantes:

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

J'ai utilisé Sublime (pour créer la demande de chaînes de caractères) + Patte.

La "CLÉ" peut être copié à partir de la CDT demandes. Il ne correspond pas à Firebase Web clé API

=> Avant d'exécuter la requête: - de prendre note de la version que vous ne voulez pas supprimer de la table fournie par Firebase. (Chaque version figurant sur le site a les 6 derniers chiffres de l'ID de sous votre e-mail)

(Les captures d'écran n'est pas fourni car tous nécessiterait flou et un peu de travail)

15voto

AAverin Points 322

Ce script n'est pas encore super-solide, alors utilisez-le à vos propres risques. Je vais essayer de le mettre à jour plus tard, mais a travaillé pour moi pour l'instant. Juste quelques javascript pour cliquer sur les boutons pour supprimer les éléments déployés un par un.

2voto

Ben Feely Points 101

Cela peut être un peu fragile en raison de la sélecteurs de confiance dans les DOM actuel de la structure des classes et sur l'accueil du tableau de bord, mais ça fonctionne pour moi!

REMARQUE: Ce script (s'il est exécuté à partir de la console) ou bookmarklet de cliquer et de confirmer la suppression sur toutes les lignes dans la vue actuelle. Je suis assez certain que même si vous cliquez sur supprimer dans le déploiement actuel, il ne sera pas le supprimer.

Fonction pour l'exécution dans la console:

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);
};

Bookmarklet:

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)()

0voto

Alan Grainger Points 121

L'option de Nathan est grande, mais j'ai une méthode rapide et sale en utilisant AutoHotkey. Prend environ une seconde par version à supprimer, de sorte que vous pouvez assommer une page en 10 secondes.

Vous aurez probablement besoin de modifier les valeurs de pixels exactes pour votre écran, mais cela fonctionne parfaitement sur mon 1920x1080.

Gagnez un est supprimer et passer à l'entrée suivante, Win s est passer à la page suivante. Mettez votre souris sur le premier menu à 3 points et allez-y!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X