Расширьте возможности своих игр на C++ с помощью наших Firebase C++ SDK, которые предоставляют интерфейс C++ поверх Firebase SDK.
Получите доступ к Firebase полностью из вашего кода C++, без необходимости писать какой-либо собственный код платформы. Firebase SDK также переводит многие идиомы, специфичные для языка, используемые Firebase, в интерфейс, более знакомый разработчикам C++.
Дополнительную информацию о том, как улучшить свои игры с помощью Firebase, можно найти на нашей странице игр Firebase .
Уже добавили Firebase в свой проект C++? Убедитесь, что вы используете последнюю версию Firebase C++ SDK .
Предпосылки
Установите следующее:
- Xcode 16.2 или более поздняя версия
- CocoaPods 1.12.0 или более поздняя версия
Убедитесь, что ваш проект ориентирован на следующие версии платформ или более поздние:
- iOS13
- tvOS 13
Настройте физическое устройство или используйте симулятор для запуска вашего приложения.
Для Cloud Messaging на платформах Apple необходимы следующие предварительные условия:
- Настройте физическое устройство Apple .
- Получите ключ аутентификации push-уведомлений Apple для своей учетной записи разработчика Apple .
- Включите Push-уведомления в Xcode в разделе Приложение > Возможности .
Войдите в Firebase, используя свой аккаунт Google.
Шаг 2 : Создайте проект Firebase
Прежде чем вы сможете добавить Firebase в свой проект C++, вам нужно создать проект Firebase для подключения к вашему проекту C++. Посетите Understand Firebase Projects , чтобы узнать больше о проектах Firebase.
Шаг 3 : Зарегистрируйте свое приложение в Firebase
Чтобы использовать Firebase в вашем приложении Apple, вам необходимо зарегистрировать ваше приложение в вашем проекте Firebase. Регистрация вашего приложения часто называется «добавлением» вашего приложения в ваш проект.
Перейдите в консоль Firebase .
В центре страницы обзора проекта щелкните значок iOS+, чтобы запустить рабочий процесс настройки.
Если вы уже добавили приложение в свой проект Firebase, нажмите «Добавить приложение» , чтобы отобразить параметры платформы.
Введите идентификатор пакета вашего приложения в поле идентификатора пакета .
Идентификатор пакета однозначно идентифицирует приложение в экосистеме Apple.
Найдите идентификатор вашего пакета: откройте свой проект в Xcode, выберите приложение верхнего уровня в навигаторе проектов, затем выберите вкладку «Общие» .
Значение поля «Идентификатор пакета» — это идентификатор пакета (например,
com.yourcompany.yourproject
).Имейте в виду, что значение идентификатора пакета чувствительно к регистру и его нельзя изменить для этого приложения Firebase после его регистрации в вашем проекте Firebase.
(Необязательно) Введите другую информацию о приложении: псевдоним приложения и идентификатор App Store .
Псевдоним приложения : внутренний, удобный идентификатор, который виден только вам в консоли Firebase
App Store ID : используется Firebase Dynamic Links для перенаправления пользователей на страницу App Store и Google Analytics для импорта событий конверсии в Google Ads . Если у вашего приложения еще нет App Store ID, вы можете добавить его позже в настройках проекта .
Нажмите «Зарегистрировать приложение» .
Шаг 4 : Добавьте файл конфигурации Firebase
Нажмите «Загрузить GoogleService-Info.plist» , чтобы получить файл конфигурации платформ Firebase Apple.
Файл конфигурации Firebase содержит уникальные, но не секретные идентификаторы для вашего проекта. Чтобы узнать больше об этом файле конфигурации, посетите Understand Firebase Projects .
Вы можете повторно загрузить файл конфигурации Firebase в любое время.
Убедитесь, что имя файла конфигурации не дополнено дополнительными символами, например
(2)
.
Откройте проект C++ в IDE, затем перетащите файл конфигурации в корень проекта C++.
При появлении соответствующего запроса выберите добавление файла конфигурации ко всем целям.
Вы закончили с настройкой задач в консоли Firebase . Продолжайте добавлять Firebase C++ SDK ниже.
Шаг 5 : Добавьте Firebase C++ SDK
Действия, описанные в этом разделе, представляют собой пример добавления поддерживаемых продуктов Firebase в ваш проект Firebase C++.
Загрузите Firebase C++ SDK , затем распакуйте SDK в удобное место.
Firebase C++ SDK не привязан к конкретной платформе, но содержит библиотеки, специфичные для данной платформы.
Добавьте модули 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
непосредственно в панель Project Navigator Xcode (по умолчанию это крайняя левая панель или щелкнуть значок файла в левом верхнем углу Xcode).Добавьте фреймворк Firebase C++
firebase.framework
, который необходим для использования любого продукта Firebase.Добавьте фреймворк для каждого продукта Firebase, который вы хотите использовать. Например, чтобы использовать Firebase Authentication , добавьте
firebase_auth.framework
.
Вернувшись в консоль Firebase , в рабочем процессе настройки нажмите кнопку Далее .
Если вы добавили Analytics , запустите свое приложение, чтобы отправить подтверждение в Firebase, что вы успешно интегрировали 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.framework firebase_admob.framework (обязательно) firebase_analytics.framework pod 'FirebaseAdMob', '11.10.0' (обязательно) pod 'FirebaseAnalytics', '11.10.0' |
Analytics | (обязательно) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '11.10.0' |
App Check | (обязательно) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '11.10.0' |
Authentication | (обязательно) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '11.10.0' |
Cloud Firestore | (обязательно) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '11.10.0' pod 'FirebaseAuth', '11.10.0' |
Cloud Functions | (обязательно) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '11.10.0' |
Cloud Messaging | (обязательно) firebase.framework firebase_messaging.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseMessaging', '11.10.0' (рекомендуется) pod 'FirebaseAnalytics', '11.10.0' |
Cloud Storage | (обязательно) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '11.10.0' |
Dynamic Links | (обязательно) firebase.framework firebase_dynamic_links.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseDynamicLinks', '11.10.0' (рекомендуется) pod 'FirebaseAnalytics', '11.10.0' |
Realtime Database | (обязательно) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '11.10.0' |
Remote Config | (обязательно) firebase.framework firebase_remote_config.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseRemoteConfig', '11.10.0' (рекомендуется) pod 'FirebaseAnalytics', '11.10.0' |
Дополнительная информация для настройки мобильных устройств
Метод свизлинга
В iOS некоторые события приложения (например, открытие URL-адресов и получение уведомлений) требуют, чтобы ваш делегат приложения реализовал определенные методы. Например, получение уведомления может потребовать от вашего делегата приложения реализовать application:didReceiveRemoteNotification:
. Поскольку каждое приложение iOS имеет свой собственный делегат приложения, Firebase использует метод swizzling , который позволяет заменить один метод другим, чтобы прикрепить свои собственные обработчики в дополнение к любым, которые вы могли реализовать.
Библиотеки Dynamic Links и Cloud Messaging должны прикреплять обработчики к делегату приложения с помощью метода swizzling. Если вы используете любой из этих продуктов Firebase, во время загрузки Firebase определит ваш класс AppDelegate
и swizzling требуемых методов, связывая вызов с вашей существующей реализацией метода.
Настройка рабочего процесса на рабочем столе ( бета-версия )
Когда вы создаете игру, часто бывает гораздо проще сначала протестировать ее на настольных платформах, а затем развернуть и протестировать на мобильных устройствах позже в процессе разработки. Для поддержки этого рабочего процесса мы предоставляем подмножество Firebase C++ SDK , которые могут работать на Windows, macOS, Linux и из редактора C++.
Для рабочих процессов на настольном компьютере вам необходимо выполнить следующее:
- Настройте свой проект C++ для CMake.
- Создать проект Firebase
- Зарегистрируйте свое приложение (iOS или Android) в Firebase
- Добавьте файл конфигурации Firebase для мобильной платформы
Создайте настольную версию файла конфигурации Firebase:
Если вы добавили файл Android
google-services.json
— при запуске приложения 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 . Посетите раздел Understand Firebase Projects, чтобы узнать больше о файлах конфигурации.
Добавьте Firebase SDK в свой проект 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_firestore firebase_auth firebase_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 для рабочего стола
Realtime Database SDK для настольных ПК использует 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 - Фреймворк системы macOS
Foundation
-
Security
системной инфраструктуры macOS - Системная платформа
GSS
macOS - Системная структура
Kerberos
macOS -
SystemConfiguration
системная структура macOS
Более подробную информацию можно найти в документации к вашему компилятору.
Библиотеки 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 .