Cloud Storage for Firebase позволяет загружать и делиться пользовательским контентом, таким как изображения и видео, что дает возможность интегрировать мультимедийный контент в ваши приложения. Ваши данные хранятся в хранилище Google Cloud Storage — масштабируемом решении для объектного хранения данных объемом в эксабайты, обеспечивающем высокую доступность и глобальное резервирование. Cloud Storage for Firebase позволяет безопасно загружать эти файлы непосредственно с мобильных устройств и веб-браузеров, легко справляясь с нестабильной сетью.
Прежде чем начать
Если вы еще этого не сделали, обязательно пройдите руководство по началу работы с приложениями Android . Оно включает в себя:
Создание проекта Firebase.
Зарегистрируйте ваше Android-приложение в проекте и подключите его к Firebase, добавив зависимости Firebase, плагин Google Services и файл конфигурации Firebase (
google-services.json) в ваше приложение.
Убедитесь, что ваш проект Firebase использует тарифный план Blaze с оплатой по мере использования , это требование вступило в силу в октябре 2024 года (см. наши часто задаваемые вопросы ). Если вы новичок в Firebase и Google Cloud, проверьте, имеете ли вы право на кредит в размере 300 долларов .
Создайте корзину Cloud Storage по умолчанию.
В панели навигации консоли Firebase выберите «Хранилище» .
Если ваш проект еще не подключен к тарифному плану Blaze с оплатой по факту использования, вам будет предложено обновить проект.
Нажмите « Начать» .
Выберите местоположение для вашего хранилища по умолчанию.
Ведра в
US-CENTRAL1,US-EAST1иЖители региона US-WEST1могут воспользоваться тарифным планом Google Cloud Storage "Всегда бесплатно" . Для всех остальных регионов действуют тарифные планы и правила использования Google Cloud Storage .При желании вы можете позже создать несколько хранилищ , каждое со своим собственным местоположением.
Настройте Firebase Security Rules для вашего хранилища по умолчанию. На этапе разработки рекомендуется настроить правила для публичного доступа .
Нажмите «Готово» .
Теперь вы можете просмотреть содержимое корзины на вкладке « Cloud Storage в консоли Firebase . Формат имени корзины по умолчанию:PROJECT_ID .firebasestorage.app .
Настройте публичный доступ
Cloud Storage for Firebase предоставляет декларативный язык правил, позволяющий определять структуру данных, их индексацию, а также условия чтения и записи данных. По умолчанию доступ на чтение и запись в Cloud Storage ограничен, поэтому читать и записывать данные могут только авторизованные пользователи. Чтобы начать работу без настройки Authentication , вы можете настроить правила для публичного доступа .
Это делает Cloud Storage доступным для всех, даже для тех, кто не использует ваше приложение, поэтому обязательно снова ограничьте доступ к Cloud Storage при настройке аутентификации.
Добавьте SDK Cloud Storage в свое приложение.
В файле Gradle вашего модуля (уровня приложения) (обычно<project>/<app-module>/build.gradle.kts или <project>/<app-module>/build.gradle ) добавьте зависимость от библиотеки Cloud Storage для Android. Мы рекомендуем использовать Firebase Android BoM для управления версиями библиотек.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.7.0")) // Add 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 BoM , что ваше приложение всегда будет использовать совместимые версии библиотек Firebase Android.
(Альтернативный вариант) Добавление зависимостей библиотеки Firebase без использования BoM
Если вы решите не использовать Firebase BoM , вам необходимо указать версию каждой библиотеки Firebase в строке зависимости.
Обратите внимание, что если вы используете несколько библиотек Firebase в своем приложении, мы настоятельно рекомендуем использовать BoM для управления версиями библиотек, что гарантирует совместимость всех версий.
dependencies { // Add 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:22.0.1") }
Настройте Cloud Storage в своем приложении.
Убедитесь, что в файле конфигурации Firebase (
google-services.json) в коде вашего приложения указано имя вашего хранилища Cloud Storage по умолчанию.Используйте этот загруженный конфигурационный файл, чтобы заменить существующий файл
google-services.jsonв каталоге модуля (на уровне приложения) вашего приложения.Убедитесь, что в вашем приложении находится только этот последний загруженный файл конфигурации и что к его имени файла не добавлены дополнительные символы, например
(2).
Для доступа к вашему Cloud Storage создайте экземпляр
FirebaseStorage:Kotlin
storage = Firebase.storage
// Alternatively, explicitly specify the bucket name URL. // val storage = Firebase.storage("gs://BUCKET_NAME")
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
// Alternatively, explicitly specify the bucket name URL. // FirebaseStorage storage = FirebaseStorage.getInstance("gs://BUCKET_NAME");
Вы готовы начать использовать Cloud Storage !
Следующий шаг? Узнайте, как создать справочный файл Cloud Storage .
Расширенные настройки
В некоторых случаях может потребоваться дополнительная настройка:
- Использование сегментов Cloud Storage в нескольких географических регионах.
- Использование сегментов Cloud Storage в различных классах хранения.
- Использование Cloud Storage с несколькими авторизованными пользователями в одном приложении.
Первый вариант использования идеально подходит, если у вас есть пользователи по всему миру, и вы хотите хранить их данные рядом с ними. Например, вы можете создать хранилища данных в США, Европе и Азии для пользователей из этих регионов, чтобы уменьшить задержку.
Второй вариант использования полезен, если у вас есть данные с различными шаблонами доступа. Например: вы можете настроить многорегиональное или региональное хранилище для фотографий или другого часто используемого контента, а также хранилище типа nearline или coldline для резервных копий пользователей или другого редко используемого контента.
В любом из этих случаев вам потребуется использовать несколько сегментов Cloud Storage .
Третий вариант использования полезен, если вы разрабатываете приложение, подобное Google Drive, которое позволяет пользователям иметь несколько учетных записей (например, личную и рабочую). Вы можете использовать собственный экземпляр приложения Firebase для аутентификации каждой дополнительной учетной записи.
Используйте несколько сегментов Cloud Storage
Если вы хотите использовать хранилище Cloud Storage отличное от хранилища по умолчанию, описанного ранее в этом руководстве, или использовать несколько хранилищ Cloud Storage в одном приложении, вы можете создать экземпляр FirebaseStorage , который будет ссылаться на ваше пользовательское хранилище:
Kotlin
// Get a non-default Storage bucket val storage = Firebase.storage("gs://my-custom-bucket")
Java
// Get a non-default Storage bucket FirebaseStorage 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 , инициализированный этим приложением:
Kotlin
// 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")
Java
// 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");
Следующие шаги
Подготовьтесь к запуску вашего приложения:
Включите App Check , чтобы гарантировать, что доступ к вашим хранилищам будут иметь только ваши приложения.
Настройте оповещения о бюджете для вашего проекта в консоли Google Cloud .
Отслеживайте использование и выставление счетов на панели мониторинга в консоли Firebase , чтобы получить общее представление об использовании ресурсов вашего проекта в различных сервисах Firebase. Вы также можете посетить панель мониторинга использования Cloud Storage для получения более подробной информации об использовании.
Ознакомьтесь с контрольным списком запуска Firebase .