Понимание Firebase на платформах Apple

При разработке приложения для Apple с использованием Firebase вы можете столкнуться с незнакомыми или специфичными для Firebase концепциями. Эта страница призвана ответить на эти вопросы или указать на ресурсы для получения дополнительной информации.

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

Поддержка библиотек Firebase на разных платформах

В таблице ниже указано, какие библиотеки Firebase совместимы с какими платформами Apple. На данный момент visionOS и watchOS поддерживаются только сообществом. Инструкции по установке и известные проблемы см. в репозитории Firebase Apple platforms SDK на GitHub.

Библиотека iOS macOS Мак
Катализатор
tvOS visionOS watchOS
A/B Testing
Firebase AI Logic 1 iOS 15+ macOS 12+ Катализатор 15+ tvOS 15+ (Только для поддержки сообщества) watchOS 8+
Analytics v8.9.0+ v8.9.0+ v8.9.0+
Analytics без идентификатора рекламы v8.9.0+ v8.9.0+ v8.9.0+
Analytics конверсия на устройстве
App Check поставщик DeviceCheck watchOS 9+
App Check Поставщик услуг по аттестации приложений iOS 14+ macOS 11+ Катализатор 14+ tvOS 15+ watchOS 9+
App Check настройка пользовательских и отладочные поставщики.
App Distribution
Authentication частичный частичный частичный частичный частичный
Cloud Firestore Только исходные дистрибутивы
Cloud Functions
Cloud Messaging
Cloud Storage
Crashlytics
Data Connect
Dynamic Links
Установка Firebase
Firebase ML Model Downloader
In-App Messaging
Performance Monitoring
Realtime Database
Remote Config

1. Ранее Firebase AI Logic назывался " Vertex AI in Firebase ".

App Clips

Большинство библиотек Firebase собираются и запускаются в целевом объекте App Clip, однако многие из них ограничены из-за ограничений операционной системы. Известные проблемы включают:

  • Функция динамических ссылок не может перенаправить пользователей на App Clip, если они нажмут на ссылку, не установив при этом приложение.
  • Firestore и Realtime Database не могут загружать данные в App Clips из-за зависимости от CFStream.

Полный список известных проблем App Clip можно найти в репозитории Firebase на GitHub .

GoogleService-Info.plist

Для добавления Firebase в ваш проект Apple необходимо добавить в него конфигурационный файл GoogleService-Info.plist . Если вы хотите использовать несколько проектов Firebase в одном приложении, обратитесь к документации по настройке нескольких проектов .

Для более подробного ознакомления с процессом инициализации приложения Firebase обратитесь к справочной документации Swift .

Swift Package Manager

Подробнее об интеграции Swift Package Manager можно узнать в нашем руководстве .

Расширения Swift

Расширения Swift для Firebase Apple Platform SDK ранее представляли собой небольшие дополнения с открытым исходным кодом к существующим библиотекам Firebase Apple Platform, позволяющие вашему коду использовать специфические для языка функции Swift. С тех пор эти API были добавлены непосредственно в основные библиотеки и не требуют отдельного включения. Если у вас ранее был SDK расширения Swift в вашем коде, см. руководство по миграции для получения инструкций по обновлению.

SwiftUI

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

Приложения SwiftUI должны отключать подмену делегатов из-за известной проблемы . Подробнее см. раздел о подмене делегатов приложений .

Подмена делегатов приложений

Firebase использует подмену методов в классе делегата приложения для автоматического подключения определенных сервисов Firebase к обратным вызовам операционной системы, таким как FCM и токен APNs. Вы можете отключить подмену методов в своем приложении, добавив флаг FirebaseAppDelegateProxyEnabled в файл Info.plist приложения и установив для него значение NO .

Четыре продукта Firebase используют механизм подмены делегатов приложений (App Delegate swizzling): Analytics , App Distribution , Authentication и FCM . Если вы отключили подмену делегатов в своем приложении и используете какой-либо из следующих продуктов, обратитесь к руководству по конкретному продукту, чтобы узнать, как использовать его без подмены делегатов:

Поддержка iOS 14

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

Постоянная поддержка Objective-C

Для упрощения поддержки документации по нашим платформам Apple, Firebase решила сосредоточиться на фрагментах кода и примерах кода на Swift в наших руководствах и других материалах для разработчиков. Фрагменты кода на Objective-C будут удалены из наших руководств начиная с 1 января 2024 года. Мы продолжим поддерживать актуальную справочную документацию по Objective-C для всех продуктов Firebase.

Ресурсы с открытым исходным кодом для SDK платформы Firebase Apple

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

Firebase — комплекты разработки для платформы Apple.

Все SDK Firebase для платформ Apple, за исключением Analytics разрабатываются как библиотеки с открытым исходным кодом в нашем общедоступном репозитории Firebase на GitHub .

FirebaseUI

FirebaseUI — это набор вспомогательных библиотек, созданных на основе Firebase, включая готовый интерфейс для аутентификации и работы с данными в Cloud Firestore и Realtime Database . Подробнее о FirebaseUI можно узнать на нашей странице GitHub .

Примеры для быстрого старта

Firebase поддерживает коллекцию примеров быстрого запуска для большинства API Firebase на iOS. Эти примеры можно найти в нашем общедоступном репозитории быстрого запуска Firebase на GitHub.

Каждый из этих примеров быстрого запуска можно открыть в Xcode, а затем запустить на мобильном устройстве или симуляторе. Или же вы можете использовать эти примеры кода для работы с SDK Firebase.