我在我的 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 对象但是
我已经对方法进行了很多调整,现在试图弄清楚它可能是一团糟,但无论我做什么,我都无法以授权用户身份上传图像。
您需要为要写入的文件夹提供匹配的
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;
}
}
}