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

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

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

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

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

Библиотека iOS MacOS Mac
Catalyst
tvOS visionOS watchOS
A/B Testing
Firebase AI Logic 1 iOS 15 и более поздние версии macOS 12 и более поздние версии Catalyst 15+ tvOS 15 и более поздние версии (поддержка сообщества) watchOS 8 и более поздние версии
Analytics 8.9.0 и более поздние 8.9.0 и более поздние 8.9.0 и более поздние
Analytics без рекламного идентификатора 8.9.0 и более поздние 8.9.0 и более поздние 8.9.0 и более поздние
Analytics конверсии на устройстве;
App Check
Поставщик DeviceCheck
watchOS 9 и более поздние версии
App Check
Поставщик App Attest
iOS 14 и более поздние версии macOS 11 и более поздние версии Catalyst 14+ tvOS 15 и более поздние версии watchOS 9 и более поздние версии
App Check
отладочные и специальные поставщики;
Поставщик: App Check
reCAPTCHA
App Distribution
Authentication частично частично частично частично частично
Cloud Firestore Только исходные дистрибутивы
Cloud Functions
Cloud Messaging
Cloud Storage
Crashlytics
установки Firebase;
In-App Messaging
Performance Monitoring
Realtime Database
Remote Config
SQL Connect 2
УСТАРЕВШИЕ ИЛИ НЕПОДДЕРЖИВАЕМЫЕ БИБЛИОТЕКИ
Dynamic Links
Firebase ML Model Downloader

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

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

Блиц-приложения

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

  • Если пользователь нажмет на ссылку, не установив приложение, динамическая ссылка не сможет перенаправить его в клип приложения.
  • Firestore и Realtime Database не могут загружать данные в клипы приложений из-за зависимости от CFStream.

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

GoogleService-Info.plist

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

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

Swift Package Manager

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

Расширения Swift

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

SwiftUI

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

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

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

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

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

Поддержка iOS 14

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

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

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

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

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

Firebase SDK для платформ Apple

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

FirebaseUI

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

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

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

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