Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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

Предпосылки

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

Создайте корзину Cloud Storage по умолчанию

  1. На навигационной панели Firebase консоли , выберите пункт меню, затем нажмите кнопку Начать.

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

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

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

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

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

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

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

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

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

Добавьте SDK Cloud Storage в свое приложение

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

Джава

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:29.0.1')

    // Declare the dependency for the Cloud Storage library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-storage'
}

С помощью Firebase Android Банка Москвы , ваше приложение будет всегда использовать совместимые версии библиотек Firebase Android.

(Альтернативный) Объявляет Firebase библиотеки зависимостей без использования спецификации

Если вы решите не использовать Firebase BoM, вы должны указать каждую версию библиотеки Firebase в ее строке зависимости.

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

dependencies {
    // Declare the dependency for the Cloud Storage library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-storage:20.0.0'
}

Котлин + KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:29.0.1')

    // Declare the dependency for the Cloud Storage library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-storage-ktx'
}

С помощью Firebase Android Банка Москвы , ваше приложение будет всегда использовать совместимые версии библиотек Firebase Android.

(Альтернативный) Объявляет Firebase библиотеки зависимостей без использования спецификации

Если вы решите не использовать Firebase BoM, вы должны указать каждую версию библиотеки Firebase в ее строке зависимости.

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

dependencies {
    // Declare the dependency for the Cloud Storage library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-storage-ktx:20.0.0'
}

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

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

Джава

FirebaseStorage storage = FirebaseStorage.getInstance();

Котлин + KTX

storage = Firebase.storage

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

Во- первых, давайте узнаем , как создать ссылку Cloud Storage .

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

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

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

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

В любом из этих случаев использования, вы хотите использовать несколько ведер Cloud Storage .

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

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

Если вы хотите использовать облачное хранилище ведра другой , чем по умолчанию , представленные выше, или использовать несколько ведра Cloud Storage в одном приложении, вы можете создать экземпляр 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")

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

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

gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

Вы можете найти свой номер проекта , как описано в введении к проектам 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 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")

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