我使用Firebase存储和实时数据库分别存储图像及其下载URL . 文件名以随机方式生成,生成下载URL并保存到实时数据库 .
场景:如果用户上传新图像(例如配置文件图像)我想借助downloadImageurl删除旧图像(下载图像url是在最初上传图像时生成的,同样保存在实时数据库中) . 旧图像如何可以删除吗?我试过下面的代码,但为了它的工作,我必须得到文件名 .
gcs
.bucket("e**********.appspot.com") // find it in Firebase>Storage>"gs://...." copy without gs
//or go to console.cloud.google.com/ buckets and copy name
.file("images/" +event.params.uid+"/"+filename) //file location in my storage
.delete()
.then(() => {
console.log(`gs://${bucketName}/${filename} deleted.`);
})
.catch(err => {
console.error('ERROR-DELETE:', err+ " filename: "+filename);
});
2 回答
根据您的需要:
保留原始图像,以后可以手动删除它 .
生成缩略图后立即删除它 .
我想你正在使用this example
1-您必须将filePath存储在数据库中 . 然后,只要您想从前面删除它:
2-继续firebase函数的承诺,如下所示:
“bucket”是先前创建的const:
以及“filePath”:
这可能会帮到你 .
此代码将从URL获取文件名,并将删除该文件 . 目前这个解决方案适合我!
Code