Облачное хранилище для Firebase позволяет загружать и делиться созданным пользователем контентом, таким как изображения и видео, что позволяет встраивать мультимедийный контент в ваши приложения. Ваши данные хранятся в корзине Google Cloud Storage — объектном хранилище эксабайтного масштаба с высокой доступностью и глобальной избыточностью. Облачное хранилище для Firebase позволяет безопасно загружать эти файлы непосредственно с мобильных устройств и веб-браузеров, с легкостью обрабатывая нестабильные сети.
Предпосылки
- Установите Firebase SDK .
- Добавьте свое приложение в проект Firebase в консоли Firebase .
Создание корзины Cloud Storage по умолчанию
На панели навигации консоли Firebase выберите «Хранилище» , затем нажмите «Начать» .
Ознакомьтесь с сообщениями о защите ваших данных в облачном хранилище с помощью правил безопасности. Во время разработки подумайте о настройке правил для общего доступа .
Выберите расположение для корзины Cloud Storage по умолчанию.
Этот параметр местоположения является расположением ресурса Google Cloud Platform (GCP) по умолчанию для вашего проекта . Обратите внимание, что это местоположение будет использоваться для сервисов GCP в вашем проекте, для которых требуется настройка местоположения, в частности, для вашей базы данных Cloud Firestore и вашего приложения App Engine (что требуется, если вы используете Cloud Scheduler).
Если вы не можете выбрать местоположение, значит, в вашем проекте уже есть местоположение ресурса GCP по умолчанию. Он был установлен либо при создании проекта, либо при настройке другого сервиса, требующего настройки местоположения.
Если вы пользуетесь тарифным планом Blaze, вы можете создать несколько сегментов , каждый из которых будет иметь собственное местоположение .
Щелкните Готово .
Настроить публичный доступ
Облачное хранилище для Firebase предоставляет язык декларативных правил, который позволяет вам определять, как ваши данные должны быть структурированы, как они должны индексироваться и когда ваши данные могут быть прочитаны и записаны. По умолчанию доступ к облачному хранилищу для чтения и записи ограничен, поэтому только пользователи, прошедшие проверку подлинности, могут читать или записывать данные. Чтобы начать работу без настройки аутентификации , вы можете настроить свои правила для общего доступа .
Это делает облачное хранилище открытым для всех, даже для людей, не использующих ваше приложение, поэтому не забудьте снова ограничить свое облачное хранилище при настройке аутентификации.
Добавьте облачное хранилище в свое приложение
Используйте диспетчер пакетов Swift для установки и управления зависимостями Firebase.
- В Xcode при открытом проекте приложения перейдите в File > Add Packages .
- При появлении запроса добавьте репозиторий SDK Firebase для платформ Apple:
- Выберите библиотеку облачного хранилища.
- Когда закончите, Xcode автоматически начнет разрешать и загружать ваши зависимости в фоновом режиме.
https://github.com/firebase/firebase-ios-sdk
Настроить облачное хранилище
Вы должны инициализировать Firebase перед созданием или использованием любой ссылки Firebase. Если вы уже сделали это для другой функции Firebase, вы можете пропустить этот шаг.
- Импортируйте модуль
FirebaseCore
в свойUIApplicationDelegate
, а также любые другие модули Firebase, которые использует ваш делегат приложения. Например, чтобы использовать Cloud Firestore и аутентификацию:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Быстрый
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Цель-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Настройте общий экземпляр
FirebaseApp
в методе applicationapplication(_:didFinishLaunchingWithOptions:)
вашего делегата приложения:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Быстрый
// Use Firebase library to configure APIs FirebaseApp.configure()
Цель-C
// Use Firebase library to configure APIs [FIRApp configure];
- Если вы используете SwiftUI, вы должны создать делегат приложения и прикрепить его к своей структуре
App
черезUIApplicationDelegateAdaptor
илиNSApplicationDelegateAdaptor
. Вы также должны отключить swizzling делегата приложения. Дополнительные сведения см. в инструкциях SwiftUI .SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- Получите ссылку на службу облачного хранилища, используя приложение Firebase по умолчанию:
Быстрый
let storage = Storage.storage()
Цель-C
FIRStorage *storage = [FIRStorage storage];
Вы готовы начать использовать облачное хранилище!
Во-первых, давайте узнаем, как создать ссылку на облачное хранилище .
Advanced Setup
Есть несколько вариантов использования, которые требуют дополнительной настройки:
- Использование сегментов Cloud Storage в нескольких географических регионах
- Использование сегментов Cloud Storage в разных классах хранилищ
- Использование сегментов Cloud Storage с несколькими пользователями, прошедшими проверку подлинности, в одном приложении
Первый вариант использования идеален, если у вас есть пользователи по всему миру и вы хотите хранить их данные рядом с ними. Например, вы можете создавать корзины в США, Европе и Азии для хранения данных для пользователей в этих регионах, чтобы уменьшить задержку.
Второй вариант использования полезен, если у вас есть данные с разными шаблонами доступа. Например: вы можете настроить многорегиональную или региональную корзину, в которой хранятся изображения или другое часто используемое содержимое, а также корзину ближней или холодной линии, в которой хранятся резервные копии пользователей или другое редко используемое содержимое.
В любом из этих вариантов использования вам понадобится несколько сегментов Cloud Storage .
Третий вариант использования полезен, если вы создаете приложение, такое как Google Диск, которое позволяет пользователям иметь несколько зарегистрированных учетных записей (например, личную учетную запись и рабочую учетную запись). Вы можете использовать собственный экземпляр приложения Firebase для аутентификации каждой дополнительной учетной записи.
Используйте несколько сегментов облачного хранилища
Если вы хотите использовать ведро Cloud Storage, отличное от указанного выше по умолчанию, или использовать несколько ведер Cloud Storage в одном приложении, вы можете создать экземпляр FIRStorage
, который ссылается на ваше пользовательское ведро:
Быстрый
// Get a non-default Cloud Storage bucket storage = Storage.storage(url:"gs://my-custom-bucket")
Цель-C
// Get a non-default Cloud Storage bucket FIRStorage storage = [FIRStorage storageWithURL:@"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
, вы можете создать экземпляр Storage
, инициализированный этим приложением:
Быстрый
// Get the default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp) // Get a non-default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
Цель-C
// Get the default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp]; // Get a non-default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"gs://my-custom-bucket"];
Следующие шаги
Подготовьтесь к запуску вашего приложения:
Включите проверку приложений , чтобы убедиться, что только ваши приложения могут получить доступ к сегментам хранилища.
Настройте оповещения о бюджете для своего проекта в Google Cloud Console.
Отслеживайте использование панели управления и выставление счетов в консоли Firebase, чтобы получить общую картину использования вашего проекта в нескольких службах Firebase. Вы также можете посетить панель управления Cloud Storage Usage для получения более подробной информации об использовании.
Ознакомьтесь с контрольным списком запуска Firebase .