Улучшите свои игры на C++ с помощью наших SDK Firebase C++, которые предоставляют интерфейс C++ поверх SDK Firebase.
Получите доступ к Firebase полностью из вашего кода C++ без необходимости писать собственный код платформы. Firebase SDK также переводит многие языковые идиомы, используемые Firebase, в интерфейс, более знакомый разработчикам C++.
Дополнительную информацию о том, как улучшить свои игры с помощью Firebase, можно найти на нашей странице игр Firebase .
Вы уже добавили Firebase в свой проект на C++? Убедитесь, что вы используете последнюю версию Firebase C++ SDK .
Предварительные условия
Установите следующее:
- Xcode 13.3.1 или новее
- CocoaPods 1.12.0 или новее
Убедитесь, что ваш проект ориентирован на следующие версии платформы или более поздние:
- iOS 13
- ТВОС 13
Настройте физическое устройство или используйте симулятор для запуска приложения.
Для Cloud Messaging на платформах Apple необходимо выполнить следующие требования:
- Настройте физическое устройство Apple .
- Получите ключ аутентификации Apple Push Notification для своей учетной записи Apple Developer .
- Включите push-уведомления в Xcode в разделе «Приложение» > «Возможности» .
Войдите в Firebase, используя свою учетную запись Google.
Шаг 2. Создайте проект Firebase.
Прежде чем вы сможете добавить Firebase в свой проект C++, вам необходимо создать проект Firebase для подключения к вашему проекту C++. Посетите раздел «Понимание проектов Firebase», чтобы узнать больше о проектах Firebase.
Шаг 3. Зарегистрируйте свое приложение в Firebase.
Чтобы использовать Firebase в своем приложении Apple, вам необходимо зарегистрировать свое приложение в проекте Firebase. Регистрация вашего приложения часто называется «добавлением» вашего приложения в проект.
Перейдите в консоль Firebase .
В центре страницы обзора проекта щелкните значок iOS+ , чтобы запустить рабочий процесс установки.
Если вы уже добавили приложение в свой проект Firebase, нажмите «Добавить приложение», чтобы отобразить параметры платформы.
Введите идентификатор пакета вашего приложения в поле идентификатора пакета .
Идентификатор пакета однозначно идентифицирует приложение в экосистеме Apple.
Найдите идентификатор своего пакета: откройте свой проект в Xcode, выберите приложение верхнего уровня в навигаторе проекта, затем выберите вкладку «Общие» .
Значением поля «Идентификатор пакета» является идентификатор пакета (например,
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», чтобы получить файл конфигурации платформы Firebase Apple.
Файл конфигурации Firebase содержит уникальные, но несекретные идентификаторы вашего проекта. Чтобы узнать больше об этом файле конфигурации, посетите раздел «Понимание проектов Firebase» .
Вы можете снова загрузить файл конфигурации Firebase в любое время.
Убедитесь, что к имени файла конфигурации не добавлены дополнительные символы, например
(2)
.
Откройте проект C++ в IDE, затем перетащите файл конфигурации в корень проекта C++.
При появлении запроса выберите добавление файла конфигурации ко всем целевым объектам.
Вы закончили настройку задач в консоли Firebase . Продолжайте добавлять SDK Firebase C++ ниже.
Шаг 5. Добавьте SDK Firebase C++.
Действия в этом разделе представляют собой пример добавления поддерживаемых продуктов Firebase в ваш проект Firebase C++.
Загрузите Firebase C++ SDK , затем разархивируйте SDK в удобное место.
Firebase C++ SDK не зависит от платформы, но содержит библиотеки для конкретной платформы.
Добавьте модули Firebase из разархивированного SDK.
Создайте подфайл, если у вас его еще нет:
cd your-app-directory
pod init
В свой подфайл добавьте модули 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 о завершении инициализации. Если вы запустили свое приложение на эмуляторе, имеющем доступ к сети, консоль Firebase уведомит вас о том, что подключение к приложению завершено.
Все готово! Ваше приложение C++ зарегистрировано и настроено для использования продуктов Firebase.
Доступные библиотеки
Узнайте больше о библиотеках C++ Firebase в справочной документации и в нашем выпуске 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.2.0' (обязательно) pod 'FirebaseAnalytics', '11.2.0' |
Analytics | (обязательно) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '11.2.0' |
App Check | (обязательно) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '11.2.0' |
Authentication | (обязательно) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '11.2.0' |
Cloud Firestore | (обязательно) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '11.2.0' pod 'FirebaseAuth', '11.2.0' |
Cloud Functions | (обязательно) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '11.2.0' |
Cloud Messaging | (обязательно) firebase.framework firebase_messaging.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseMessaging', '11.2.0' (рекомендуется) pod 'FirebaseAnalytics', '11.2.0' |
Cloud Storage | (обязательно) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '11.2.0' |
Dynamic Links | (обязательно) firebase.framework firebase_dynamic_links.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseDynamicLinks', '11.2.0' (рекомендуется) pod 'FirebaseAnalytics', '11.2.0' |
Realtime Database | (обязательно) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '11.2.0' |
Remote Config | (обязательно) firebase.framework firebase_remote_config.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseRemoteConfig', '11.2.0' (рекомендуется) pod 'FirebaseAnalytics', '11.2.0' |
Дополнительная информация для мобильной настройки
Метод Swizzling
В iOS некоторые события приложения (например, открытие URL-адресов и получение уведомлений) требуют, чтобы делегат вашего приложения реализовал определенные методы. Например, для получения уведомления может потребоваться, чтобы делегат вашего приложения реализовал application:didReceiveRemoteNotification:
. Поскольку каждое приложение iOS имеет свой собственный делегат приложения, Firebase использует метод swizzling , который позволяет заменять один метод другим, присоединяя свои собственные обработчики в дополнение к тем, которые вы могли реализовать.
Библиотекам Dynamic Links и Cloud Messaging необходимо прикрепить обработчики к делегату приложения с помощью метода swizzling. Если вы используете какой-либо из этих продуктов Firebase, во время загрузки Firebase определит ваш класс AppDelegate
и подключит к нему необходимые методы, связывая обратный вызов с существующей реализацией метода.
Настройка рабочего процесса на рабочем столе ( бета )
Когда вы создаете игру, зачастую гораздо проще сначала протестировать ее на настольных платформах, а затем развернуть и протестировать на мобильных устройствах на более позднем этапе разработки. Для поддержки этого рабочего процесса мы предоставляем подмножество 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 . Посетите раздел «Понимание проектов Firebase», чтобы узнать больше о файлах конфигурации.
Добавьте 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
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 13.3.1.
При создании классических приложений C++ в macOS свяжите со своим проектом следующее:
- системная библиотека
pthread
- Системная платформа
CoreFoundation
macOS - Системная платформа
Foundation
macOS - Платформа системы
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 .