Ограничить доступ firebase к одному приложению Android без аутентификации

Мне нужно получить доступ к изображениям для чтения / записи из хранилища firebase. Нет возможности аутентификации. Как я могу ограничить управление данными только через приложение.

Существующие правила для предоставления публичного доступа

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write;
    }
  }
}

person Viswanath Kumar Sandu    schedule 22.10.2019    source источник


Ответы (2)


Невозможно ограничить доступ к файлам через Firebase SDK только для вашего приложения. Такой подход просто не работает в облачной среде.

Также см:

Хотя обычно речь идет о других продуктах Firebase, та же логика применима и к хранилищу.

Вам нужно будет описать в своих правилах безопасности, что можно сделать с файлами в облачном хранилище через Firebase API, а затем (при необходимости), кто может делать это с помощью аутентификации Firebase.

Обратите внимание, что использование аутентификации Firebase не обязательно требует от пользователя предоставления учетных данных, поскольку Firebase предоставляет возможность войдите анонимно. Это просто дает каждому пользователю безопасный уникальный идентификатор, который вы можете, например, использовать, чтобы разрешить пользователям доступ только к файлам, которые они загрузили сами (и многим другим вариантам использования).

person Frank van Puffelen    schedule 22.10.2019

Согласно документам

Cloud Storage хранит ваши файлы в корзине Google Cloud Storage, что делает их доступными как через Firebase, так и через Google Cloud.

Хотя firebase напрямую не поддерживает это, но в облаке Google есть возможность ограничить API только сигнатурами имен конкретных пакетов приложений. Я пробовал для MAP sdk, но теоретически должно работать и хранилище.

person touhid udoy    schedule 22.10.2019