删除 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)。