создание общедоступной папки в хранилище Firebase

#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 позволяет пользователям без аутентификации читать из каждого файла в корзине. Это настоятельно не рекомендуется. Смотрите Ответ Лукаша ниже.