Ограничения размера хранилища Firebase не применяются

Здравствуйте, у меня есть правила для папки /posts/media/{userId}/{media}, например:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPath=**} {
      allow read, create, write;
    }

    match /posts/media {
        allow create: if request.auth != null && request.resource.size < 10 * 1024 * 1024
                   && request.resource.contentType.matches('(image|video)/.*');

      match /{userId}/{allPaths=**} {
        allow create, write: if request.auth.uid == userId && request.resource.size < 10 * 1024 * 1024
                   && request.resource.contentType.matches('(image|video)/.*');
      }
    }
  }
}

Размер файла 10 МБ не применяется. Пользователи могут легко размещать видео в несколько раз более 10 МБ.

Любая помощь?

Спасибо мишель

1 ответ

Решение

Эти правила разрешают неограниченный доступ на чтение и запись ко всему вашему хранилищу:

match /{allPath=**} {
  allow read, create, write;
}

Если вы не хотите такого поведения, то удалите это правило. Его вседозволенность перевесит все остальные правила. Вы не можете сузить область доступа, предоставленную другим правилом. Если какое-либо правило разрешает доступ к файлу, это не может быть изменено другим правилом.

Другие вопросы по тегам