我正在尝试设置规则,以允许仅用户在以下路径中创建和更新文件夹:UsersMedia/folderName
,其中folderName
是userId
。
然后我要 不 允许上传到存储空间中除此以外的任何其他路径。
service firebase.storage {
match /b/{bucket}/o {
// first rule
match /{allPaths=**} {
allow write: if false;
allow delete: if false;
}
match /UsersMedia/{userId} {
allow create, update: if (request.auth.uid == userId) && resource.size < 25000 * 1024; //25Mb;
allow delete:if false;
allow read;
}
仅当我将第一个规则设置为允许写入时,此方法才有效;如果我删除了第一个规则,则它将根本不起作用。
此外,大小和userId的规则不会发生,因此我可以上传大于最大值的文件。
发生了什么事?
答案 0 :(得分:0)
原来,第一个规则将接管其他规则。 所以我删除了它。
然后我出错了,我用:p修复了它。
if (request.auth.uid == userId) && request.resource.size < 25 * 1024 * 1024;
限制文件大小。 现在一切正常。