Firestore存储规则可阻止除某些文件夹以外的所有文件夹?

时间:2020-09-30 12:47:42

标签: firebase-storage firebase-security

我正在尝试设置规则,以允许仅用户在以下路径中创建和更新文件夹:UsersMedia/folderName,其中folderNameuserId

然后我要 允许上传到存储空间中除此以外的任何其他路径。

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的规则不会发生,因此我可以上传大于最大值的文件。

发生了什么事?

1 个答案:

答案 0 :(得分:0)

原来,第一个规则将接管其他规则。 所以我删除了它。

然后我出错了,我用:p修复了它。

if (request.auth.uid == userId) && request.resource.size < 25 * 1024 * 1024;

限制文件大小。 现在一切正常。