diff --git a/scripts/code.angularjs.org-firebase/functions/index.js b/scripts/code.angularjs.org-firebase/functions/index.js index 5b8b12e3002e..af68f88f9063 100644 --- a/scripts/code.angularjs.org-firebase/functions/index.js +++ b/scripts/code.angularjs.org-firebase/functions/index.js @@ -175,31 +175,33 @@ function deleteOldSnapshotZip(event) { const bucketId = object.bucket; const filePath = object.name; const contentType = object.contentType; + const resourceState = object.resourceState; const bucket = gcs.bucket(bucketId); - if (event.eventType === 'providers/cloud.storage/eventTypes/object.change' && - contentType === 'application/zip' && - filePath.startsWith('snapshot/') + if (contentType !== 'application/zip' || + !filePath.startsWith('snapshot/') || + resourceState === 'not_exists' // Deletion event ) { + return; + } - bucket.getFiles({ - prefix: 'snapshot/', - delimiter: '/', - autoPaginate: false - }).then(function(data) { - const files = data[0]; - - const oldZipFiles = files.filter(file => { - return file.metadata.name !== filePath && file.metadata.contentType === 'application/zip'; - }); + bucket.getFiles({ + prefix: 'snapshot/', + delimiter: '/', + autoPaginate: false + }).then(function(data) { + const files = data[0]; - oldZipFiles.forEach(function(file) { - file.delete(); - }); + const oldZipFiles = files.filter(file => { + return file.metadata.name !== filePath && file.metadata.contentType === 'application/zip'; + }); + oldZipFiles.forEach(function(file) { + file.delete(); }); - } + + }); } exports.sendStoredFile = functions.https.onRequest(sendStoredFile);