#firebase #firebase-storage #firebase-security
# #firebase #firebase-хранилище #firebase-безопасность
Вопрос:
мне нужно установить общедоступную папку с разрешениями только на чтение в хранилище firebase, мои правила безопасности
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write:if request.auth.uid != null;
}
match /{platos=**} {
allow read;
}
}
}
папка называется platos, и я не уверен, защищены ли эти правила, другие папки должны иметь защиту только для зарегистрированных пользователей
Комментарии:
1. Зависит от того, что вы вызываете
secured
. Вы разрешаете любому, кто вошел в ваш проект firebase, читать и записывать все пути к файлам.2. Если вы используете что-то вроде входа в Google, это не проблема, потому что только авторизованные домены в любом случае смогут проходить аутентификацию.
Ответ №1:
Первое правило должно касаться вашей папки, потому что в противном случае применяется первое правило, которое отклоняет чтение:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /platos/{allPaths=**} {
allow read;
allow write: if request.auth != null;
}
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
Ответ №2:
Вы можете просто удалить код аутентификации request.auth.uid != null
и предоставить только разрешение на чтение.
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read;
}
}
}
Комментарии:
1. Удаление
request.auth.uid != null
позволяет пользователям без аутентификации читать из каждого файла в корзине. Это настоятельно не рекомендуется. Смотрите Ответ Лукаша ниже.