Расширьте возможности своих игр на C++ с помощью наших SDK Firebase C++, которые предоставляют интерфейс C++ поверх SDK Firebase.
Получите полный доступ к Firebase из своего кода на C++, без необходимости писать какой-либо платформенно-ориентированный код. SDK Firebase также переводит многие специфические для языка идиомы, используемые Firebase, в интерфейс, более привычный для разработчиков на C++.
Более подробную информацию о том, как расширить возможности ваших игр с помощью Firebase, вы найдете на нашей странице, посвященной играм Firebase .
Уже добавили Firebase в свой проект на C++? Убедитесь, что используете последнюю версию Firebase C++ SDK .
Предварительные требования
Установите следующее:
- Xcode 16.2 или более поздняя версия
- CocoaPods 1.12.0 или более поздняя версия
Убедитесь, что ваш проект ориентирован на следующие версии платформы или более поздние:
- iOS 15
- tvOS 15
Для запуска приложения подготовьте физическое устройство или используйте симулятор.
Для использования Cloud Messaging на платформах Apple необходимы следующие условия:
- Настройте физическое устройство Apple .
- Получите ключ аутентификации для push-уведомлений Apple для вашей учетной записи разработчика Apple .
- Включите push-уведомления в Xcode в разделе App > Capabilities .
Войдите в Firebase, используя свою учетную запись Google.
Шаг 2 : Создайте проект Firebase.
Прежде чем добавить Firebase в свой проект C++, необходимо создать проект Firebase для подключения к вашему проекту C++. Подробнее о проектах Firebase можно узнать в разделе «Понимание проектов Firebase».
Шаг 3 : Зарегистрируйте свое приложение в Firebase.
Чтобы использовать Firebase в своем приложении Apple, вам необходимо зарегистрировать приложение в своем проекте Firebase. Регистрация приложения часто называется «добавлением» приложения в проект.
Перейдите в консоль Firebase .
В центре страницы обзора проекта нажмите значок iOS+ , чтобы запустить процесс настройки.
Если вы уже добавили приложение в свой проект Firebase, нажмите «Добавить приложение» , чтобы отобразить параметры платформы.
Введите идентификатор пакета вашего приложения в поле «Идентификатор пакета» .
Идентификатор пакета (bundle ID) однозначно идентифицирует приложение в экосистеме Apple.
Найдите свой идентификатор пакета (bundle ID): откройте свой проект в Xcode, выберите приложение верхнего уровня в навигаторе проекта, затем перейдите на вкладку «Общие» (General) .
Значение поля «Идентификатор пакета» — это идентификатор пакета (например,
com.yourcompany.yourproject).Обратите внимание, что значение идентификатора пакета чувствительно к регистру, и его нельзя изменить для этого приложения Firebase после его регистрации в вашем проекте Firebase.
(Необязательно) Введите другую информацию о приложении: псевдоним приложения и идентификатор в App Store .
Псевдоним приложения : внутренний, удобный идентификатор, видимый только вам в консоли Firebase
Идентификатор App Store : используется Firebase Dynamic Links для перенаправления пользователей на страницу вашего приложения в App Store , а также Google Analytics для импорта событий конверсии в Google Ads . Если у вашего приложения еще нет идентификатора App Store, вы можете добавить его позже в настройках проекта .
Нажмите «Зарегистрировать приложение» .
Шаг 4 : Добавьте файл конфигурации Firebase.
Нажмите «Загрузить GoogleService-Info.plist» , чтобы получить файл конфигурации платформ Apple для Firebase.
Конфигурационный файл Firebase содержит уникальные, но не секретные идентификаторы для вашего проекта и приложения. Чтобы узнать больше об этом конфигурационном файле, посетите раздел «Понимание проектов Firebase» .
Вы можете в любой момент повторно загрузить свой конфигурационный файл Firebase .
Убедитесь, что к имени файла конфигурации не добавлены дополнительные символы, например
(2).
Откройте свой проект на C++ в IDE, затем перетащите файл конфигурации в корневую папку проекта на C++.
При появлении запроса выберите этот вариант, чтобы добавить файл конфигурации ко всем целевым объектам.
Настройка задач в консоли Firebase завершена. Перейдите к разделу «Добавление SDK Firebase C++» ниже.
Шаг 5 : Добавьте SDK Firebase C++
Описанные в этом разделе шаги представляют собой пример того, как добавить поддерживаемые продукты Firebase в ваш проект Firebase C++.
Загрузите Firebase C++ SDK , затем распакуйте его в удобное для вас место.
SDK Firebase C++ не является платформенно-зависимым, но содержит платформенно-специфичные библиотеки.
Добавьте модули Firebase из распакованного SDK.
Создайте файл Podfile, если у вас его ещё нет:
cd your-app-directory
pod init
В ваш Podfile добавьте модули Firebase, которые вы хотите использовать в своем приложении.
Analytics включена
# Add the Firebase pod for Google Analytics pod 'FirebaseAnalytics'
# Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'Analytics отключена
# Add the pods for the Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'
Установите модули, затем откройте файл
.xcworkspaceв Xcode.pod install
open your-app.xcworkspace
Добавьте фреймворки Firebase из распакованного SDK.
Проще всего добавить эти фреймворки, перетащив их из окна
Finderнепосредственно в панель навигатора проекта Xcode (по умолчанию это крайняя левая панель; или щелкните значок файла в верхнем левом углу Xcode).Добавьте фреймворк Firebase C++
firebase.framework, необходимый для использования любого продукта Firebase.Добавьте фреймворк для каждого продукта Firebase, который вы хотите использовать. Например, чтобы использовать Firebase Authentication , добавьте
firebase_auth.framework.
Вернувшись в консоль Firebase , в процессе настройки нажмите «Далее» .
Если вы добавили Analytics , запустите приложение, чтобы отправить в Firebase подтверждение успешной интеграции. В противном случае этот шаг проверки можно пропустить.
В журналах вашего устройства отобразится подтверждение Firebase о завершении инициализации. Если вы запускали приложение на эмуляторе с доступом к сети, консоль Firebase уведомит вас о завершении подключения приложения.
Всё готово! Ваше приложение на C++ зарегистрировано и настроено для использования продуктов Firebase.
Доступные библиотеки
Узнайте больше о библиотеках Firebase для C++ в справочной документации и в нашем SDK с открытым исходным кодом на GitHub .
Доступные библиотеки для платформ Apple
Обратите внимание, что библиотеки C++ для Android перечислены в версии этой страницы настроек для Android .
Каждый продукт Firebase имеет разные зависимости. Обязательно добавьте все перечисленные зависимости для нужного продукта Firebase в ваш Podfile и проект C++.
Каждый продукт Firebase может поддерживать только ограниченный набор платформ Apple OS (iOS, tvOS и т. д.). Проверьте, какие платформы поддерживаются каждой библиотекой, в разделе «Узнайте больше о C++ и Firebase» .
| Продукт Firebase | Фреймворки и модули |
|---|---|
| AdMob | (обязательно) firebase.frameworkfirebase_admob.framework(обязательно) firebase_analytics.frameworkpod 'FirebaseAdMob', '12.6.0'(обязательно) pod 'FirebaseAnalytics', '12.6.0' |
| Analytics | (обязательно) firebase.frameworkfirebase_analytics.frameworkpod 'FirebaseAnalytics', '12.6.0' |
| App Check | (обязательно) firebase.frameworkfirebase_app_check.frameworkpod 'FirebaseAppCheck', '12.6.0' |
| Authentication | (обязательно) firebase.frameworkfirebase_auth.frameworkpod 'FirebaseAuth', '12.6.0' |
| Cloud Firestore | (обязательно) firebase.frameworkfirebase_firestore.frameworkfirebase_auth.frameworkpod 'FirebaseFirestore', '12.6.0'pod 'FirebaseAuth', '12.6.0' |
| Cloud Functions | (обязательно) firebase.frameworkfirebase_functions.frameworkpod 'FirebaseFunctions', '12.6.0' |
| Cloud Messaging | (обязательно) firebase.frameworkfirebase_messaging.framework(рекомендуется) firebase_analytics.frameworkpod 'FirebaseMessaging', '12.6.0'(рекомендуется) pod 'FirebaseAnalytics', '12.6.0' |
| Cloud Storage | (обязательно) firebase.frameworkfirebase_storage.frameworkpod 'FirebaseStorage', '12.6.0' |
| Dynamic Links | (обязательно) firebase.frameworkfirebase_dynamic_links.framework(рекомендуется) firebase_analytics.frameworkpod 'FirebaseDynamicLinks', '12.6.0'(рекомендуется) pod 'FirebaseAnalytics', '12.6.0' |
| Realtime Database | (обязательно) firebase.frameworkfirebase_database.frameworkpod 'FirebaseDatabase', '12.6.0' |
| Remote Config | (обязательно) firebase.frameworkfirebase_remote_config.framework(рекомендуется) firebase_analytics.frameworkpod 'FirebaseRemoteConfig', '12.6.0'(рекомендуется) pod 'FirebaseAnalytics', '12.6.0' |
Дополнительная информация по настройке мобильного устройства.
Метод перетасовки
На iOS некоторые события приложения (например, открытие URL-адресов и получение уведомлений) требуют от вашего делегата приложения реализации определенных методов. Например, для получения уведомления ваш делегат приложения может потребовать реализации application:didReceiveRemoteNotification: `. Поскольку каждое приложение iOS имеет свой собственный делегат приложения, Firebase использует подмену методов (method swizzling ), которая позволяет заменять один метод другим, чтобы добавить свои собственные обработчики в дополнение к тем, которые вы могли реализовать.
Библиотеки Dynamic Links и Cloud Messaging требуют добавления обработчиков к делегату приложения с помощью подмены методов. Если вы используете какой-либо из этих продуктов Firebase, при загрузке Firebase идентифицирует ваш класс AppDelegate и подменит необходимые методы на него, вызывая цепочку вызовов к существующей реализации метода.
Настройка рабочего процесса на рабочем столе ( бета-версия )
При создании игры зачастую гораздо проще сначала протестировать её на настольных платформах, а затем развернуть и протестировать на мобильных устройствах на более поздних этапах разработки. Для поддержки этого рабочего процесса мы предоставляем подмножество SDK Firebase C++ , которые могут работать на Windows, macOS, Linux и из редактора C++.
Для рабочих процессов на настольных компьютерах необходимо выполнить следующие действия:
- Настройте свой проект C++ для работы с CMake.
- Создайте проект Firebase.
- Зарегистрируйте свое приложение (iOS или Android) в Firebase.
- Добавьте файл конфигурации Firebase для мобильной платформы.
Создайте настольную версию файла конфигурации Firebase:
Если вы добавили файл
google-services.jsonдля Android , то при запуске приложения Firebase найдет этот мобильный файл и автоматически сгенерирует файл конфигурации Firebase для настольных компьютеров (google-services-desktop.json).Если вы добавили файл
GoogleService-Info.plistдля iOS , перед запуском приложения необходимо преобразовать этот мобильный файл в файл конфигурации Firebase для настольных компьютеров . Для преобразования файла выполните следующую команду из той же директории, что и файлGoogleService-Info.plist:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Этот конфигурационный файл для настольных компьютеров содержит идентификатор проекта C++, который вы указали в процессе настройки консоли Firebase . Подробнее о конфигурационных файлах можно узнать в разделе «Понимание проектов Firebase» .
Добавьте SDK Firebase в свой проект на C++.
Приведенные ниже шаги служат примером того, как добавить любой поддерживаемый продукт Firebase в ваш проект C++. В этом примере мы рассмотрим добавление Firebase Authentication и Firebase Realtime Database .
Установите переменную среды
FIREBASE_CPP_SDK_DIRна путь к распакованному Firebase C++ SDK.В файл
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: Многопоточность / MT против многопоточной DLL / MD
- Цель: Релиз против отладки
Обратите внимание, что следующие библиотеки были протестированы с использованием 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 16.2.
При разработке настольных приложений на C++ для macOS, подключите к своему проекту следующие компоненты:
- библиотека системы
pthread - Системная платформа
CoreFoundationдля macOS -
Foundationсистемной структуры macOS - Системная структура
SecuritymacOS - Системная структура
GSSmacOS - Системная структура
Kerberosдля macOS -
SystemConfigurationmacOS
Для получения более подробной информации обратитесь к документации вашего компилятора.
библиотеки 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 .