Ограничения размера хранилища 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;
}
Если вы не хотите такого поведения, то удалите это правило. Его вседозволенность перевесит все остальные правила. Вы не можете сузить область доступа, предоставленную другим правилом. Если какое-либо правило разрешает доступ к файлу, это не может быть изменено другим правилом.