尝试删除文件后,我收到该文件成功的通知。但是,当我检查存储控制台页面时,文档仍然存在。
如果我手动指定以前上传的文件的名称,则该文件将被成功删除。
知道我在做什么错吗?这与我刚刚上传文件现在要删除它有关吗?在存储引用上是否有某种缓存,我必须再次查询才能知道新文件存在?
我在这里遵循Google提供的文档。 https://firebase.google.com/docs/storage/web/delete-files
这是我的代码
const storage = firebase.storage();
const picture = storage.ref().child('images/' + file.name);
picture
.delete()
.then(function () {
notification.success({
message: 'File Deleted',
placement: 'bottomLeft',
});
})
.catch(function (error) {
console.error(error);
notification.warning({
message: 'There was an error',
placement: 'bottomLeft',
});
});
当我说“手动指定文件”时,我是说我可以做到
const picture = storage.ref().child('images/alreadyUploadedImage.png');
然后运行相同的代码将其删除。这就是为什么我要进行缓存的原因,因为如果我通过更改代码中的文本来重新加载浏览器会话,现在可以删除文件了。另外,这对我刚刚上传的文件不起作用(在刷新浏览器之前)。如果我将代码中的名称更改为“ images / image.png”,然后上传具有该名称的图像,然后立即尝试将其删除,则它将无法正常工作。但是,如果我随后刷新浏览器并添加另一张图像,然后删除该图像,则“ image.png”文件将从存储中删除。
答案 0 :(得分:0)
事实证明,在调用delete方法之后,我再次调用了put方法。我正在使用AntD和具有getValueFromEvent = {normFile}的Upload组件。每次上传或删除文件时都会调用此“ normFile”函数。因此,如果事件为event.status ==='removed',我只需要从该函数返回即可。