Улучшите свои игры на 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 ?
Для Cloud Messaging на платформах Apple необходимо выполнить следующие требования:
- Настройте физическое устройство Apple .
- Получите ключ аутентификации Apple Push Notification для своей учетной записи Apple Developer .
- Включите push-уведомления в Xcode в разделе «Приложение» > «Возможности» .
Войдите в Firebase, используя свою учетную запись Google.
Шаг 2. Создайте проект Firebase.
Прежде чем вы сможете добавить Firebase в свой проект C++, вам необходимо создать проект Firebase для подключения к вашему проекту C++. Посетите раздел «Понимание проектов Firebase» , чтобы узнать больше о проектах Firebase.
Создать проект Firebase
В консоли Firebase нажмите «Добавить проект» .
Чтобы добавить ресурсы Firebase в существующий проект Google Cloud , введите название его проекта или выберите его из раскрывающегося меню.
Чтобы создать новый проект, введите желаемое имя проекта. Вы также можете при желании изменить идентификатор проекта, отображаемый под названием проекта.
При появлении запроса прочтите и примите условия Firebase .
Нажмите Продолжить .
(Необязательно) Настройте Google Analytics для своего проекта, что позволит вам оптимально использовать любой из следующих продуктов Firebase:
Либо выберите существующую учетную запись Google Analytics , либо создайте новую учетную запись.
Если вы создаете новую учетную запись, выберите местоположение для отчетов Analytics , затем примите настройки совместного использования данных и условия Google Analytics для вашего проекта.
Нажмите «Создать проект» (или «Добавить 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 : используется 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, которые вы хотите использовать в своем приложении.
# 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
непосредственно в панель «Навигатор проекта» 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.8.1' (обязательно) pod 'FirebaseAnalytics', '11.8.1' |
Analytics | (обязательно) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '11.8.1' |
App Check | (обязательно) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '11.8.1' |
Authentication | (обязательно) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '11.8.1' |
Cloud Firestore | (обязательно) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '11.8.1' pod 'FirebaseAuth', '11.8.1' |
Cloud Functions | (обязательно) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '11.8.1' |
Cloud Messaging | (обязательно) firebase.framework firebase_messaging.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseMessaging', '11.8.1' (рекомендуется) pod 'FirebaseAnalytics', '11.8.1' |
Cloud Storage | (обязательно) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '11.8.1' |
Dynamic Links | (обязательно) firebase.framework firebase_dynamic_links.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseDynamicLinks', '11.8.1' (рекомендуется) pod 'FirebaseAnalytics', '11.8.1' |
Realtime Database | (обязательно) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '11.8.1' |
Remote Config | (обязательно) firebase.framework firebase_remote_config.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseRemoteConfig', '11.8.1' (рекомендуется) pod 'FirebaseAnalytics', '11.8.1' |
Дополнительная информация по настройке мобильного устройства
Метод 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 .