如何修复客户端请求失败的firebase存储规则



我有这样的firebase存储规则:

rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /users/{uid}/{fileName} {
allow read;
allow create, update: if request.auth.uid == uid && request.resource.size <= 100 * 1024;
allow delete: if request.auth.uid == uid;
}
}
}

从我的客户端来看,我有一个页面,它将图片添加到";users/${uid}/profile_pic.png";具有有效大小。写入请求仍然不被允许,给出以下错误:

E/flutter (31434): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: [firebase_storage/unauthorized] User is not authorized to perform the desired action.

此代码上传图像

await storage.ref("users/${auth.currentUser!.uid}/profile_pic.png").putData(picBytes!);

如有任何帮助,将不胜感激

使用以下代码:

rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /users/{uid}/{fileName} {
allow read;
allow create, update: if request.auth != null && request.auth.uid == uid && request.resource.size <= 100 * 1024;
allow delete: if request.auth != null && request.auth.uid == uid;
}
}
}

根据https://firebase.google.com/docs/rules/rules-and-auth

最新更新