删除 firebase 存储中的用户配置文件删除所有内容
Delete user profile in firebase storage delete everything
我有一个简单的应用程序,用户可以在其中上传个人资料图片。
上传功能有效。
我想要一个按钮来删除用户帐户,同时从 firebase 存储中删除用户图像。
这是删除用户图片的简单功能:
const deleteUserAccount = () => {
firebase
.storage()
.ref(`users/${user.uid}/profile.jpg`)
.delete()
.then(() => {
console.log('image deleted');
})
.catch((err) => {
console.log(err);
});
如果我执行该功能,整个“users”文件夹都会被删除,而不仅仅是与用户的 userId 对应的文件夹。
我只想删除相应的{user.uid}文件夹。
这里是我的存储规则:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{users}/{uid}/{profileImage} {
allow read, write: if request.auth.uid == uid;
}
}
}
谢谢
如果文件夹中只有 profile.jpg
,则行为实际上符合预期。 Cloud Storage 中的文件夹会随着文件的添加和删除而自动创建和删除。不能有没有文件的文件夹(通过 API)。
我有一个简单的应用程序,用户可以在其中上传个人资料图片。 上传功能有效。 我想要一个按钮来删除用户帐户,同时从 firebase 存储中删除用户图像。
这是删除用户图片的简单功能:
const deleteUserAccount = () => {
firebase
.storage()
.ref(`users/${user.uid}/profile.jpg`)
.delete()
.then(() => {
console.log('image deleted');
})
.catch((err) => {
console.log(err);
});
如果我执行该功能,整个“users”文件夹都会被删除,而不仅仅是与用户的 userId 对应的文件夹。 我只想删除相应的{user.uid}文件夹。
这里是我的存储规则:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{users}/{uid}/{profileImage} {
allow read, write: if request.auth.uid == uid;
}
}
}
谢谢
如果文件夹中只有 profile.jpg
,则行为实际上符合预期。 Cloud Storage 中的文件夹会随着文件的添加和删除而自动创建和删除。不能有没有文件的文件夹(通过 API)。