Расширьте возможности своих игр на 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 ?
Для Cloud Messaging на платформах Apple необходимы следующие предварительные условия:
- Настройте физическое устройство Apple .
- Получите ключ аутентификации push-уведомлений Apple для своей учетной записи разработчика Apple .
- Включите Push-уведомления в Xcode в разделе Приложение > Возможности .
Войдите в Firebase, используя свой аккаунт Google.
Шаг 2 : Создайте проект Firebase
Прежде чем вы сможете добавить Firebase в свой проект C++, вам нужно создать проект Firebase для подключения к вашему проекту C++. Посетите Understand Firebase Projects , чтобы узнать больше о проектах Firebase.
Создать проект Firebase
В консоли Firebase нажмите Добавить проект .
Чтобы добавить ресурсы Firebase в существующий проект Google Cloud , введите имя проекта или выберите его из раскрывающегося меню.
Чтобы создать новый проект, введите имя проекта. Вы также можете изменить идентификатор проекта, отображаемый под именем проекта.
При появлении соответствующего запроса ознакомьтесь с условиями Firebase и примите их.
Нажмите «Продолжить» .
(Необязательно) Настройте Google Analytics для своего проекта, что обеспечит оптимальную работу с использованием следующих продуктов Firebase: Firebase A/B Testing , Cloud Messaging , Crashlytics , In-App Messaging и Remote Config (включая Personalization ).
Либо выберите существующую учетную запись Google Analytics , либо создайте новую учетную запись. Если вы создаете новую учетную запись, выберите местоположение отчетов Analytics , затем примите настройки совместного использования данных и условия Google Analytics для вашего проекта.
Нажмите «Создать проект» (или «Добавить Firebase» , если вы добавляете Firebase в существующий проект Google Cloud ).
Firebase автоматически предоставляет ресурсы для вашего проекта Firebase. После завершения процесса вы будете перенаправлены на страницу обзора вашего проекта Firebase в консоли Firebase .
Шаг 3 : Зарегистрируйте свое приложение в Firebase
Чтобы использовать Firebase в вашем приложении Apple, вам необходимо зарегистрировать ваше приложение в вашем проекте Firebase. Регистрация вашего приложения часто называется «добавлением» вашего приложения в ваш проект.
Перейдите в консоль Firebase .
В центре страницы обзора проекта щелкните значок iOS+, чтобы запустить рабочий процесс настройки.
Если вы уже добавили приложение в свой проект Firebase, нажмите «Добавить приложение» , чтобы отобразить параметры платформы.
Введите идентификатор пакета вашего приложения в поле идентификатора пакета .
Что такое идентификатор пакета и где его найти?
Идентификатор пакета однозначно идентифицирует приложение в экосистеме Apple.
Найдите идентификатор вашего пакета: откройте свой проект в Xcode, выберите приложение верхнего уровня в навигаторе проектов, затем выберите вкладку «Общие» .
Значение поля «Идентификатор пакета» — это идентификатор пакета (например,
com.yourcompany.yourproject
).Имейте в виду, что значение идентификатора пакета чувствительно к регистру и его нельзя изменить для этого приложения Firebase после его регистрации в вашем проекте Firebase.
(Необязательно) Введите другую информацию о приложении: псевдоним приложения и идентификатор App Store .
Как псевдоним приложения и идентификатор App Store используются в Firebase?
Псевдоним приложения : внутренний, удобный идентификатор, который виден только вам в консоли 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, которые вы хотите использовать в своем приложении.
# 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'# 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 .