Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Начните работу с облачным хранилищем на Android

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

Предпосылки

Если вы еще этого не сделали, добавьте Firebase в свой проект Android .

В файле build.gradle уровне проекта обязательно build.gradle репозиторий Google Maven как в buildscript и в разделы allprojects .

Создать сегмент хранилища по умолчанию

  1. На панели навигации консоли Firebase выберите « Хранилище» , затем нажмите « Начать» .

  2. Просмотрите сообщения о защите данных вашего хранилища с помощью правил безопасности. Во время разработки подумайте о настройке ваших правил для общего доступа .

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

    • Этот параметр местоположения является местоположением ресурса Google Cloud Platform (GCP) по умолчанию для вашего проекта. Обратите внимание, что это местоположение будет использоваться для сервисов GCP в вашем проекте, для которых требуется настройка местоположения, в частности, для вашей базы данных Cloud Firestore и вашего приложения App Engine (что необходимо, если вы используете Cloud Scheduler).

    • Если вы не можете выбрать местоположение, значит, в вашем проекте уже есть местоположение ресурса GCP по умолчанию. Он был установлен либо во время создания проекта, либо при настройке другой службы, для которой требуется настройка местоположения.

    Если вы используете план Blaze, вы можете создать несколько корзин , каждая со своим местоположением .

  4. Щелкните Готово .

Настроить публичный доступ

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

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

Добавьте облачное хранилище для Firebase SDK в свое приложение

Добавьте зависимость для библиотеки Cloud Storage для Firebase Android в файл Gradle вашего модуля (уровня приложения) (обычно app/build.gradle ):

Ява

implementation 'com.google.firebase:firebase-storage:19.2.0'

Котлин + KTX

implementation 'com.google.firebase:firebase-storage-ktx:19.2.0'

Настроить облачное хранилище

Первым шагом к доступу к вашему сегменту хранилища является создание экземпляра FirebaseStorage :

Ява

FirebaseStorage storage = FirebaseStorage.getInstance();

Котлин + KTX

storage = Firebase.storage

Вы готовы начать использовать облачное хранилище!

Во-первых, давайте узнаем, как создать ссылку на облачное хранилище .

Дополнительные настройки

Есть несколько вариантов использования, требующих дополнительной настройки:

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

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

В любом из этих вариантов использования вы захотите использовать несколько сегментов хранилища .

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

Используйте несколько сегментов хранилища

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

Ява

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

Котлин + KTX

// Get a non-default Storage bucket
val storage = Firebase.storage("gs://my-custom-bucket")

Работа с импортированными ведрами

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

gsutil -m acl ch -r -u firebase-storage@system.gserviceaccount.com:O gs://<your-cloud-storage-bucket>

Это не влияет на вновь созданные корзины, поскольку для них установлен контроль доступа по умолчанию, разрешающий 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 customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");

Котлин + KTX

// Get the default bucket from a custom FirebaseApp
val storage = Firebase.storage(customApp!!)

// Get a non-default bucket from a custom FirebaseApp
val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")

Следующие шаги