【问题标题】:Delete user profile in firebase storage delete everything删除 Firebase 存储中的用户配置文件删除所有内容
【发布时间】:2021-11-10 16:08:19
【问题描述】:

我有一个简单的应用程序,用户可以在其中上传个人资料图片。 上传功能有效。 我想要一个按钮来删除用户帐户,同时从 Firebase 存储中删除用户图像。

这是删除用户图片的简单功能:

  const deleteUserAccount = () => {
    firebase
      .storage()
      .ref(`users/${user.uid}/profile.jpg`)
      .delete()
      .then(() => {
        console.log('image deleted');
      })
      .catch((err) => {
        console.log(err);
      });

如果我执行该功能,整个“用户”文件夹将被删除,而不仅仅是与用户的 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;
    }
  }
}

谢谢

【问题讨论】:

    标签: javascript firebase firebase-storage


    【解决方案1】:

    如果文件夹中除了profile.jpg 之外没有其他内容,则行为实际上与预期一致。 Cloud Storage 中的文件夹会随着文件的添加和删除而自动创建和删除。 (通过 API)你不能有一个没有文件的文件夹。

    【讨论】:

    • 哦,你是对的!事实是我只对一个用户进行测试,所以在“用户”文件夹中只有一个带有 uid 的文件夹 .. 运行该功能我不明白为什么它会删除所有内容......我通过创建来进行测试另一个假设用户的另一个文件夹,现在,实际上,它只删除了有问题的 uid 之一!谢谢你!
    • 很高兴听到就是这样 ? 你启发了我也发推特:twitter.com/puf/status/1438183905765462017
    猜你喜欢
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多