我有这样的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