Начало работы с Cloud Storage для Unity

Cloud Storage for Firebase позволяет загружать и делиться контентом, созданным пользователями, например изображениями и видео, чтобы добавлять в приложения мультимедийный контент. Ваши данные хранятся в корзине Google Cloud Storage – решении для хранения объектов эксабайтного масштаба с высокой доступностью и глобальной избыточностью. Cloud Storage for Firebase позволяет безопасно загружать эти файлы непосредственно с мобильных устройств и из веб-браузеров, легко справляясь с нестабильным подключением к сети.

Подготовка

Чтобы использовать Cloud Storage, вам необходимо:

  • Зарегистрируйте проект Unity и настройте его для использования Firebase.

    • Если в проекте уже используется Firebase, можете пропустить этот шаг.

    • Если у вас нет проекта Unity, вы можете скачать пример приложения.

  • Добавьте в свой проект Unity Firebase Unity SDK (в частности, FirebaseStorage.unitypackage).

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

Кроме того, убедитесь, что для вашего проекта Firebase выбран тарифный план Blaze с оплатой по мере использования. Это необходимо для работы с Cloud Storage for Firebase. Если вы раньше не работали с Firebase и Google Cloud, проверьте, можете ли вы получить бесплатный пробный кредит на 300 долларов США.

Как создать сегмент по умолчанию Cloud Storage

  1. В консоли Firebase выберите Базы данных и хранилище > Хранилище.

    Если ваш проект ещё не переведен на тарифный план Blaze с оплатой по мере использования, вам будет предложено это сделать.

  2. Нажмите Начать.

  3. Выберите местоположение для сегмента по умолчанию.

  4. Настройте Firebase Security Rules для корзины по умолчанию. На этапе разработки рекомендуем настроить правила для общедоступных статей.

  5. Нажмите Готово.

Теперь вы можете посмотреть сегмент в консоли Firebase (выберите Базы данных и хранилище > Хранилище > вкладка Файлы). Формат названия сегмента по умолчанию: PROJECT_ID.firebasestorage.app.

Как настроить общий доступ

Cloud Storage for Firebase предоставляет декларативный язык правил, который позволяет определять структуру данных, способ их индексации, а также время, когда данные можно считывать и записывать. По умолчанию доступ на чтение и запись к Cloud Storage ограничен, поэтому читать и записывать данные могут только аутентифицированные пользователи. Чтобы начать работу без настройки Authentication, вы можете настроить правила для общедоступного доступа.

В этом случае Cloud Storage будет доступен всем, даже тем, кто не пользуется вашим приложением. Поэтому после настройки аутентификации обязательно снова ограничьте доступ к Cloud Storage.

Как получить доступ к курсу FirebaseStorage

Firebase.Storage.FirebaseStorage – это точка входа для Cloud Storage Unity SDK.

// Get a reference to the storage service, using the default Firebase App
FirebaseStorage storage = FirebaseStorage.DefaultInstance;

Теперь вы можете использовать Cloud Storage.

Что дальше? Подробнее о том, как создать цифровой отпечаток Cloud Storage…

Расширенная настройка

В некоторых случаях требуется дополнительная настройка:

Первый вариант подходит, если ваши пользователи находятся в разных странах и вы хотите хранить их данные рядом с ними. Например, вы можете создать сегменты в США, Европе и Азии, чтобы хранить данные пользователей из этих регионов и уменьшить задержку.

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

В обоих случаях вам понадобится несколько сегментов Cloud Storage.

Третий вариант использования полезен, если вы создаете приложение, например Google Диск, в котором пользователи могут войти в несколько аккаунтов (например, личный и рабочий). Вы можете использовать собственный экземпляр приложения Firebase для аутентификации каждого дополнительного аккаунта.

Используйте несколько сегментов Cloud Storage

Если вы хотите использовать сегмент Cloud Storage, отличный от сегмента по умолчанию, или несколько сегментов Cloud Storage в одном приложении, создайте экземпляр FirebaseStorage, который ссылается на ваш сегмент:

// Get a non-default Storage bucket
var storage = FirebaseStorage.GetInstance("gs://my-custom-bucket");

Как работать с импортированными сегментами

При импорте существующего сегмента Cloud Storage в Firebase вам нужно будет предоставить Firebase доступ к этим файлам с помощью инструмента gsutil, который входит в Google Cloud SDK:

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME

Номер проекта можно найти, следуя инструкциям из вводной статьи о проектах Firebase.

Это не повлияет на новые сегменты, поскольку для них по умолчанию разрешен доступ Firebase. Это временная мера. В будущем она будет выполняться автоматически.

Как использовать собственное приложение Firebase

Если вы создаете более сложное приложение с помощью специального FirebaseApp, вы можете создать экземпляр FirebaseStorage, инициализированный с помощью этого приложения:

// Get the default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.GetInstance(customApp);

// Get a non-default bucket from a custom FirebaseApp
FirebaseStorage storageCustom = FirebaseStorage.GetInstance(customApp, "gs://my-custom-bucket");

Дальнейшие действия