Firebase C++ SDK предоставляет интерфейс C++ для Firebase SDK.
Вы можете работать с Firebase, используя только код C++ и не создавая нативный код для платформы. Firebase SDK также переводит многие языковые идиомы, используемые Firebase, в интерфейс, более знакомый разработчикам C++.
Узнайте больше о том, как улучшить свои игры с помощью Firebase, на странице Firebase Games.
Вы уже добавили Firebase в проект C++? Убедитесь, что вы используете последнюю версию Firebase C++ SDK.
Требования
Установите следующие компоненты:
- Xcode 26.2 или более поздней версии;
Убедитесь, что ваш проект предназначен для следующих версий платформы или более поздних:
- iOS 15
- tvOS 15
Настройте физическое устройство или используйте симулятор для запуска приложения.
Войдите в Firebase, используя аккаунт Google.
Шаг 2. Создайте проект Firebase
Прежде чем добавить Firebase в проект C++, создайте проект Firebase, который вы подключите к проекту C++. Подробнее о проектах Firebase…
Шаг 3. Зарегистрируйте приложение в Firebase
Чтобы использовать Firebase в приложении Apple, необходимо зарегистрировать приложение в проекте Firebase. Регистрация приложения часто называется "добавлением" приложения в проект.
Перейдите в консоль Firebase.
В центре обзорной страницы проекта нажмите на значок iOS+, чтобы запустить мастер настройки.
Если вы уже добавили приложение в проект Firebase, нажмите Добавить приложение, чтобы посмотреть варианты платформ.
В поле Идентификатор пакета укажите идентификатор пакета приложения.
(Необязательно.) Введите другие сведения о приложении: псевдоним и идентификатор магазина приложений.
Нажмите Register app (Зарегистрировать приложение).
Шаг 4. Добавьте файл конфигурации Firebase
Нажмите Download GoogleService-Info.plist (Скачать GoogleService-Info.plist), чтобы получить файл конфигурации Firebase для платформ Apple.
Откройте проект C++ в интегрированной среде разработки и перетащите файл конфигурации в корневой каталог проекта.
Если появится запрос, добавьте файл конфигурации во все целевые объекты.
Вы завершили настройку в консоли Firebase. Перейдите к разделу Добавьте Firebase C++ SDK ниже.
Шаг 5. Добавьте Firebase C++ SDK
В этом разделе приведен пример того, как добавить поддерживаемые продукты Firebase в проект Firebase C++.
Скачайте Firebase C++ SDK и распакуйте архив в удобное место.
Firebase C++ SDK не зависит от платформы, но содержит библиотеки, которые зависят от нее.
Для установки зависимостей Firebase SDK для платформ Apple и управления ими используйте Swift Package Manager.
Откройте проект приложения в Xcode и перейдите в меню File (Файл) > Add Package Dependencies (Добавить зависимости пакетов).
Когда появится запрос, добавьте хранилище Firebase SDK для платформ Apple:
https://github.com/firebase/firebase-ios-sdk.git
Для правила зависимости выберите Точная версия и введите
13.1.1.Выберите библиотеки Firebase, которые вы хотите использовать в приложении (например,
FirebaseAuthиFirebaseDatabase). Если в вашем проекте Firebase включена Google Analytics, обязательно добавьтеFirebaseAnalytics.
После этого Xcode автоматически начнет распознавать и скачивать зависимости в фоновом режиме.
Добавьте XCFrameworks Firebase из каталога
xcframeworksраспакованного SDK.Проще всего добавить эти XCFrameworks, перетащив их из окна
Finderнепосредственно на панель Project Navigator (Навигатор проекта) в Xcode (по умолчанию это крайняя левая панель; также можно нажать на значок файла в левом верхнем углу Xcode) и добавив их в целевой объект сборки приложения.Добавьте Firebase C++ XCFramework
firebase.xcframework, который необходим для использования любого продукта Firebase.Добавьте XCFramework для каждого продукта Firebase, который вы хотите использовать. Например, чтобы использовать свойство Firebase Authentication, нужно добавить разметку типа
firebase_auth.xcframework.
Вернитесь в консоль Firebase и в процессе настройки нажмите Next (Далее).
Если вы добавили Analytics, запустите приложение, чтобы отправить в Firebase подтверждение того, что интеграция выполнена успешно. В противном случае вы можете пропустить этот шаг.
В журналах устройства появится подтверждение Firebase о том, что инициализация завершена. Если вы запустили приложение на эмуляторе с доступом к сети, в консоли Firebase появится уведомление о том, что подключение приложения выполнено.
Готово! Приложение C++ зарегистрировано и настроено для использования продуктов Firebase.
Доступные библиотеки
Подробную информацию о библиотеках Firebase на C++ можно найти в справочной документации и в нашем SDK с открытым исходным кодом на GitHub.
Доступные библиотеки для платформ Apple
Библиотеки C++ для Android перечислены на странице настройки для Android.
У каждого продукта Firebase разные зависимости. Обязательно добавьте все перечисленные зависимости для выбранного продукта Firebase с помощью Swift Package Manager и в проекте C++.
Каждый продукт Firebase может поддерживать только определенные платформы Apple OS (iOS, tvOS и т. д.). Узнать, какие платформы поддерживаются каждой библиотекой, можно в статье Подробнее о C++ и Firebase.
| Продукт Firebase | Библиотеки XCFrameworks и Swift Package Manager |
|---|---|
| Analytics |
(required) firebase.xcframeworkfirebase_analytics.xcframeworkFirebaseAnalytics (13.1.1)
|
| App Check |
(required) firebase.xcframeworkfirebase_app_check.xcframeworkFirebaseAppCheck (13.1.1)
|
| Authentication |
(required) firebase.xcframeworkfirebase_auth.xcframeworkFirebaseAuth (13.1.1)
|
| Cloud Firestore |
(required) firebase.xcframeworkfirebase_firestore.xcframeworkfirebase_auth.xcframeworkFirebaseFirestore (13.1.1)FirebaseAuth (13.1.1)
|
| Cloud Functions |
(required) firebase.xcframeworkfirebase_functions.xcframeworkFirebaseFunctions (13.1.1)
|
| Cloud Messaging |
(required) firebase.xcframeworkfirebase_messaging.xcframework(recommended) firebase_analytics.xcframeworkFirebaseMessaging (13.1.1)(recommended) FirebaseAnalytics (13.1.1)
|
| Cloud Storage |
(required) firebase.xcframeworkfirebase_storage.xcframeworkFirebaseStorage (13.1.1)
|
| Realtime Database |
(required) firebase.xcframeworkfirebase_database.xcframeworkFirebaseDatabase (13.1.1)
|
| Remote Config |
(required) firebase.xcframeworkfirebase_remote_config.xcframework(recommended) firebase_analytics.xcframeworkFirebaseRemoteConfig (13.1.1)(recommended) FirebaseAnalytics (13.1.1)
|
| УСТАРЕВШИЕ ИЛИ НЕПОДДЕРЖИВАЕМЫЕ БИБЛИОТЕКИ | |
| Dynamic Links |
(required) firebase.xcframeworkfirebase_dynamic_links.xcframework(recommended) firebase_analytics.xcframeworkFirebaseDynamicLinks (13.1.1)(recommended) FirebaseAnalytics (13.1.1)
|
Дополнительная информация о настройке на мобильных устройствах
Интеграция без использования Swift Package Manager
Если вы не хотите использовать Swift Package Manager для управления зависимостями SDK Firebase для платформ Apple, ознакомьтесь с разделом Интеграция без использования Swift Package Manager в руководстве по настройке платформ Apple, чтобы узнать об альтернативных вариантах интеграции.
Подмена метода
В iOS для некоторых событий приложения (например, открытия URL и получения уведомлений) требуется, чтобы делегат приложения реализовывал определенные методы. Например, для получения уведомления может потребоваться, чтобы делегат приложения реализовал метод application:didReceiveRemoteNotification:. Поскольку у каждого приложения iOS есть собственный делегат, Firebase использует подмену метода, которая позволяет заменять один метод другим, чтобы прикреплять собственные обработчики в дополнение к тем, которые вы могли реализовать.
Библиотекам Dynamic Links и Cloud Messaging необходимо прикрепить обработчики к делегату приложения с помощью подмены метода. Если вы используете любой из этих продуктов Firebase, то при загрузке Firebase идентифицирует ваш класс AppDelegate и подменит в нем необходимые методы, добавив обратный вызов к существующей реализации метода.
Как настроить рабочий процесс для компьютеров (бета)
При создании игры часто бывает намного проще сначала протестировать ее на настольных платформах, а затем развернуть и протестировать на мобильных устройствах на более поздних этапах разработки. Для этого мы предоставляем подмножество SDK Firebase C++, которые могут работать в Windows, macOS, Linux и в редакторе C++.
Для рабочих процессов на компьютере необходимо выполнить следующие действия:
Создайте версию файла конфигурации Firebase для компьютеров:
Если вы добавили файл
google-services.jsonдля Android. При запуске приложения Firebase находит этот мобильный файл и автоматически создает компьютерный файл конфигурации Firebase (google-services-desktop.json).Если вы добавили файл iOS
GoogleService-Info.plist, то перед запуском приложения вам нужно преобразовать этот мобильный файл в файл конфигурации Firebase для компьютеров. Чтобы преобразовать файл, выполните следующую команду в том же каталоге, где находится файлGoogleService-Info.plist:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Этот файл конфигурации для ПК содержит идентификатор проекта C++, который вы указали в процессе настройки консоли Firebase. Подробнее о файлах конфигурации рассказывается в статье Проекты Firebase.
Добавьте Firebase SDK в проект C++.
Ниже приведен пример того, как добавить любой поддерживаемый продукт Firebase в проект C++. В этом примере мы добавляем Firebase Authentication и Firebase Realtime Database.
Установите переменную среды
FIREBASE_CPP_SDK_DIRв местоположение распакованного SDK Firebase C++.Добавьте в файл
CMakeLists.txtпроекта следующий код, включая библиотеки для продуктов Firebase, которые вы хотите использовать. Например, чтобы использовать Firebase Authentication и Firebase Realtime Database:# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. # Add the Firebase SDKs for the products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database set(firebase_libs firebase_auth firebase_database firebase_app) target_link_libraries(${target_name} "${firebase_libs}")
Запустите приложение C++.
Доступные библиотеки (компьютеры)
Firebase C++ SDK включает поддержку рабочих процессов на компьютере для некоторых функций, что позволяет использовать определенные части Firebase в автономных сборках для компьютеров на Windows, macOS и Linux.
| Продукт Firebase | Ссылки на библиотеки (с помощью CMake) |
|---|---|
| App Check |
firebase_app_check(обязательно) firebase_app
|
| Authentication |
firebase_auth(обязательно) firebase_app
|
| Cloud Firestore |
firebase_firestorefirebase_authfirebase_app
|
| Cloud Functions |
firebase_functions(обязательно) firebase_app
|
| Cloud Storage |
firebase_storage(обязательно) firebase_app
|
| Realtime Database |
firebase_database(обязательно) firebase_app
|
| Remote Config |
firebase_remote_config(обязательно) firebase_app
|
Остальные библиотеки Firebase для компьютеров предоставляются в виде заглушек (нефункциональных реализаций) для удобства при сборке для Windows, macOS и Linux. Поэтому вам не нужно условно компилировать код для компьютеров.
Realtime Database (компьютеры)
SDK Realtime Database для ПК использует REST для доступа к базе данных, поэтому вам необходимо объявить индексы, которые вы используете с Query::OrderByChild() на ПК, иначе прослушиватели не будут работать.
Дополнительная информация о настройке на компьютере
Библиотеки Windows
Для Windows версии библиотек предоставляются на основе следующих данных:
- Платформа сборки: 32-разрядная (x86) или 64-разрядная (x64) версия.
- Среда выполнения Windows: Multithreaded / MT или Multithreaded DLL /MD
- Цель: Release или Debug
Обратите внимание, что перечисленные ниже библиотеки были протестированы с помощью Visual Studio 2015 и 2017.
При создании компьютерных приложений на C++ в Windows свяжите с проектом следующие библиотеки Windows SDK: Дополнительную информацию можно найти в документации по компилятору.
| Библиотека Firebase C++ | Зависимости библиотеки Windows SDK |
|---|---|
| App Check | advapi32, ws2_32, crypt32 |
| Authentication | advapi32, ws2_32, crypt32 |
| Cloud Firestore | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
| Cloud Functions | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
| Cloud Storage | advapi32, ws2_32, crypt32 |
| Realtime Database | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
| Remote Config | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Библиотеки macOS
Для macOS (Darwin) версии библиотеки предоставляются для 64-разрядной платформы (x86_64). Для вашего удобства также предоставляются фреймворки.
Обратите внимание, что библиотеки macOS были протестированы с помощью Xcode 26.2.
При создании компьютерных приложений на C++ в macOS свяжите с проектом следующее:
pthreadсистемная библиотека- Системный фреймворк macOS
CoreFoundation - Системный фреймворк macOS
Foundation SecurityСистемный фреймворк macOS- Системный фреймворк macOS
GSS - Системный фреймворк macOS
Kerberos - Системный фреймворк macOS
SystemConfiguration
Дополнительную информацию можно найти в документации компилятора.
Библиотеки Linux
Для Linux доступны версии библиотек для 32-разрядных (i386) и 64-разрядных (x86_64) платформ.
Обратите внимание, что библиотеки Linux были протестированы с использованием GCC 4.8.0, GCC 7.2.0 и Clang 5.0 в Ubuntu.
При создании компьютерных приложений на C++ в Linux свяжите системную библиотеку pthread со своим проектом. Дополнительную информацию можно найти в документации компилятора. Если вы используете GCC 5 или более поздней версии, определите -D_GLIBCXX_USE_CXX11_ABI=0.
Дальнейшие действия
Ознакомьтесь с примерами приложений Firebase.
Ознакомьтесь с SDK с открытым исходным кодом на GitHub.
Подготовка к запуску приложения:
- Настройте оповещения о бюджете для проекта в консоли Google Cloud.
- Чтобы получить общее представление об использовании проекта в нескольких сервисах Firebase, отслеживайте панель управления Использование и оплата в консоли Firebase.
- Ознакомьтесь с контрольным списком для запуска Firebase.