Понимание 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
SQL Connect 2
Dynamic Links
Установка Firebase
Firebase ML Model Downloader
In-App Messaging
Performance Monitoring
Realtime Database
Remote Config

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

2. Ранее Firebase SQL Connect назывался " Firebase Data Connect ".

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.