Firebase 存储:用户无权访问“images/myimg.jpg”。 (存储/未经授权)

问题描述 投票:0回答:1

我在我的 vue 项目中使用 firebase。我有一个部分可以将图像上传到 firebase 存储。我设置了一个方法,允许我上传图像,效果很好,但是一旦我在 firebase 上设置了规则

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    // Allow read access to everyone.
    allow read: if true;
    
    // Allow write access only if the user is authenticated.
    allow write: if auth != null;
  }
}

现在,无论我做什么,我的方法都会出现权限错误。

Firebase 存储:用户无权访问“images/myimg.jpg”。 (存储/未经授权)

即使我尝试将规则更改为

allow write: if true
我仍然收到错误

下面是我的功能。

async UpdateImage(){
  const user = auth.currentUser;
  if (user) {
    try {
      const storageRef = ref(storage, `images/img1.jpg`);
      console.log('User Authenticated:', auth.currentUser);

      const snapshot = await uploadBytes(storageRef, this.$refs.ImageItem.files[0])
      console.log('Image Upload' + snapshot)
    
      const downloadURL = await getDownloadURL(storageRef);    
      console.log(downloadURL)
    )
    } catch (error) {
      alert(error)
    }
  } else {
    alert("user is not authenticated")
  }
}

console.log('User Authenticated:', auth.currentUser)
显示在测试时我已登录。我得到了 UserImpl 对象但是

我已经对方法进行了很多调整,现在试图弄清楚它可能是一团糟,但无论我做什么,我都无法以授权用户身份上传图像。

javascript firebase-storage firebase-security
1个回答
0
投票

您需要为要写入的文件夹提供匹配的

allow
声明:

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {    
      // Allow read access to everyone.
      allow read: if true;

      // Allow write access only if the user is authenticated.
      allow write: if auth != null;
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.