Добавьте Firebase в свой проект C ++
Улучшите свои игры на C ++ с помощью наших пакетов SDK Firebase C ++, которые предоставляют интерфейс C ++ поверх Firebase для iOS и Android.
Полностью получайте доступ к Firebase из вашего кода C ++, без необходимости писать собственный код платформы. SDK Firebase также переводит многие языковые идиомы, используемые Firebase, в интерфейс, более знакомый разработчикам на C ++.
Узнайте больше о том, как включить в свои игры Firebase, на нашей странице игр Firebase .
Уже добавили Firebase в свой проект C ++? Убедитесь, что вы используете последнюю версию Firebase C ++ SDK .
Предпосылки
Установите предпочтительный редактор или IDE, например Android Studio, IntelliJ или VS Code.
Получите Android SDK .
Убедитесь, что ваш проект соответствует этим требованиям:
Целевой уровень API 16 (Jelly Bean) или более поздний
Использует Gradle и настраивается с помощью CMake
Настройте физическое устройство или используйте эмулятор для запуска приложения.
Войдите в Firebase, используя свою учетную запись Google.
Шаг 2. Создайте проект Firebase
Прежде чем вы сможете добавить Firebase в свой проект C ++, вам необходимо создать проект Firebase для подключения к вашему проекту C ++. Посетите Understand Firebase Projects, чтобы узнать больше о проектах Firebase.
Шаг 3. Зарегистрируйте приложение в Firebase
Чтобы использовать Firebase в своем приложении для Android, вам необходимо зарегистрировать приложение в своем проекте Firebase. Регистрация вашего приложения часто называется «добавлением» вашего приложения в проект.
Перейдите в консоль Firebase .
В центре страницы обзора проекта щелкните значок Android (
) или Добавить приложение, чтобы запустить рабочий процесс настройки.Введите имя пакета вашего приложения в поле имени пакета Android .
Имя пакета однозначно идентифицирует ваше приложение на устройстве и в магазине Google Play.
Имя пакета часто называют идентификатором приложения .
Найдите имя пакета своего приложения в файле Gradle модуля (уровня приложения), обычно
app/build.gradle
(пример имени пакета:com.yourcompany.yourproject
).Имейте в виду, что значение имени пакета чувствительно к регистру, и его нельзя изменить для этого приложения Firebase Android после его регистрации в вашем проекте Firebase.
(Необязательно) Введите другую информацию о приложении: псевдоним приложения и сертификат подписи отладки SHA-1 .
Псевдоним приложения : внутренний удобный идентификатор, который виден только вам в консоли Firebase.
Сертификат подписи отладки SHA-1 : хэш SHA-1 требуется для проверки подлинности Firebase (при использовании входа в систему Google или входа по номеру телефона ) и динамических ссылок Firebase .
Щелкните Зарегистрировать приложение .
Шаг 4. Добавьте файл конфигурации Firebase
Нажмите Загрузить google-services.json, чтобы получить файл конфигурации Firebase Android.
Файл конфигурации Firebase содержит уникальные, но не секретные идентификаторы вашего проекта. Чтобы узнать больше об этом файле конфигурации, посетите Understand Firebase Projects .
Вы можете повторно загрузить файл конфигурации Firebase в любое время.
Убедитесь, что к имени файла конфигурации не добавлены дополнительные символы, например
(2)
.
Откройте свой проект C ++ в IDE, затем добавьте файл конфигурации в свой проект:
Сборки Gradle - добавьте файл конфигурации в тот же каталог, что и файл
build.gradle
верхнего уровня.Другие системы сборки. Для создания строковых ресурсов Android см. « Пользовательские системы сборки» ниже.
(Только для сборок Gradle) Чтобы включить службы Firebase в вашем проекте C ++, добавьте плагин google-services в файл
build.gradle
верхнего уровня.Добавьте правила, чтобы включить плагин Google Services Gradle. Убедитесь, что у вас есть репозиторий Google Maven.
buildscript { repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository } dependencies { // ... // Add the following lines: classpath 'com.google.gms:google-services:4.3.4' // Google Services plugin implementation 'com.google.android.gms:17.5.0' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
Примените плагин Google Services Gradle:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Вы закончили с настройкой задач в консоли Firebase. Продолжайте добавлять SDK Firebase C ++ ниже.
Шаг 5. Добавьте SDK Firebase C ++
Шаги в этом разделе являются примером того, как добавить поддерживаемые продукты Firebase в ваш проект Firebase C ++.
Загрузите Firebase C ++ SDK , затем распакуйте SDK в удобное место.
Пакет SDK Firebase C ++ не зависит от платформы, но он содержит библиотеки для конкретной платформы.
Укажите местоположение распакованного SDK в файле
gradle.properties
вашего проекта:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Добавьте в файл
settings.gradle
вашего проекта следующее:def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir') gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir" includeBuild "$firebase_cpp_sdk_dir"
Добавьте следующее в файл Gradle вашего модуля (уровня приложения) (обычно
app/build.gradle
):android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { analytics }
В файл
CMakeLists.txt
вашего проекта добавьте следующий контент, включая библиотеки для продуктов Firebase, которые вы хотите использовать в своем приложении.Аналитика включена
# 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 Analytics, Firebase Authentication, and Firebase Realtime Database set(firebase_libs firebase_analytics firebase_auth firebase_database firebase_app) target_link_libraries(${target_name} "${firebase_libs}")
Аналитика не включена
# 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}")
Синхронизируйте свое приложение, чтобы убедиться, что все зависимости имеют необходимые версии.
Если вы добавили Google Analytics, запустите приложение, чтобы отправить в Firebase подтверждение того, что вы успешно интегрировали Firebase. В противном случае вы можете пропустить этап проверки.
В журналах вашего устройства будет отображаться подтверждение Firebase, что инициализация завершена. Если вы запустили свое приложение на эмуляторе, имеющем доступ к сети, консоль Firebase уведомит вас о том, что подключение вашего приложения завершено.
Все готово! Ваше приложение C ++ зарегистрировано и настроено для использования служб Firebase.
Доступные библиотеки
Узнайте больше о библиотеках C ++ Firebase в справочной документации и в нашем выпуске SDK с открытым исходным кодом на GitHub .
Доступные библиотеки для Android (с использованием CMake)
Обратите внимание, что библиотеки C ++ для iOS перечислены в версии для iOS на этой странице установки .
Продукт Firebase | Ссылки на библиотеки (с использованием CMake) |
---|---|
AdMob | firebase_admob (обязательно) firebase_analytics (обязательно) firebase_app |
Аналитика | firebase_analytics (обязательно) firebase_app |
Аутентификация | firebase_auth (обязательно) firebase_app |
Cloud Firestore (альфа) | firebase_firestore (обязательно) firebase_app (обязательно) firebase_auth |
Облачные функции | firebase_functions (обязательно) firebase_app |
Обмен сообщениями в облаке | firebase_messaging (рекомендуется) firebase_analytics (обязательно) firebase_app |
Облачное хранилище | firebase_storage (обязательно) firebase_app |
Динамические ссылки | firebase_dynamic_links (рекомендуется) firebase_analytics (обязательно) firebase_app |
База данных в реальном времени | firebase_database (обязательно) firebase_app |
Удаленная конфигурация | firebase_remote_config (рекомендуется) firebase_analytics (обязательно) firebase_app |
Дополнительная информация для мобильной настройки
Получить отчеты о сбоях NDK
Firebase Crashlytics поддерживает отчеты о сбоях для приложений, использующих собственные библиотеки Android. Чтобы узнать больше, см. Получение отчетов о сбоях Android NDK .
Индивидуальные системы сборки
Firebase предоставляет скрипт generate_xml_from_google_services_json.py
для преобразования google-services.json
в ресурсы .xml
которые вы можете включить в свой проект. Этот скрипт применяет то же преобразование, которое плагин Gradle сервисов Google Play выполняет при создании приложений Android.
Если вы не выполняете сборку с использованием Gradle (например, используете ndk-build, makefiles, Visual Studio и т. Д.), Вы можете использовать этот скрипт для автоматизации создания строковых ресурсов Android .
ProGuard
Многие системы сборки Android используют ProGuard для сборки в режиме выпуска, чтобы уменьшить размеры приложений и защитить исходный код Java.
Если вы используете ProGuard, вам необходимо добавить файлы в libs/android/*.pro
соответствующие библиотекам Firebase C ++, которые вы используете в своей конфигурации ProGuard.
Например, с Gradle, если вы используете Google Analytics, ваш файл build.gradle
будет выглядеть так:
android { // ... buildTypes { release { minifyEnabled true proguardFile getDefaultProguardFile('your-project-proguard-config.txt') proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/app.pro") proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/analytics.pro") // ... and so on, for each Firebase C++ library that you're using } } }
Требования к сервисам Google Play
Большинство библиотек Firebase C ++ требуют, чтобы сервисы Google Play были на клиентском устройстве Android. Если библиотека Firebase C ++ возвращает kInitResultFailedMissingDependency
при инициализации, это означает, что сервисы Google Play недоступны на клиентском устройстве (что означает, что его необходимо обновить, повторно активировать, исправить разрешения и т. Д.). Библиотеку Firebase нельзя использовать, пока ситуация на клиентском устройстве не будет исправлена.
Вы можете узнать, почему сервисы Google Play недоступны на клиентском устройстве (и попытаться исправить это), используя функции в google_play_services/availability.h
.
В следующей таблице указано, требуются ли сервисы Google Play на клиентском устройстве для каждого поддерживаемого продукта Firebase.
Библиотека Firebase C ++ | На клиентском устройстве требуются сервисы Google Play? |
---|---|
AdMob | Не требуется (обычно) |
Аналитика | Не требуется |
Аутентификация | необходимые |
Cloud Firestore | необходимые |
Облачные функции | необходимые |
Обмен сообщениями в облаке | необходимые |
Облачное хранилище | необходимые |
Динамические ссылки | необходимые |
База данных в реальном времени | необходимые |
Удаленная конфигурация | необходимые |
Сервисы AdMob и Google Play
Большинство версий Google Mobile Ads SDK для Android могут нормально работать без сервисов Google Play на клиентском устройстве. Однако, если вы используете зависимость com.google.android.gms:play-services-ads-lite
, а не стандартную зависимость com.google.firebase:firebase-ads
указанную выше, требуются службы Google Play .
Инициализация AdMob вернет kInitResultFailedMissingDependency
только если kInitResultFailedMissingDependency
оба следующих kInitResultFailedMissingDependency
:
- Сервисы Google Play недоступны на клиентском устройстве.
- Вы используете
com.google.android.gms:play-services-ads-lite
.
Настройка рабочего процесса на рабочем столе ( бета )
Когда вы создаете игру, часто намного проще сначала протестировать ее на настольных платформах, а затем развернуть и протестировать на мобильных устройствах позже в процессе разработки. Для поддержки этого рабочего процесса мы предоставляем подмножество SDK Firebase C ++, которые могут работать в 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, чтобы узнать больше о файлах конфигурации.
Добавьте SDK Firebase в свой проект C ++.
Приведенные ниже шаги служат примером того, как добавить любой поддерживаемый продукт Firebase в ваш проект C ++. В этом примере мы рассмотрим добавление Firebase Authentication и Firebase Realtime Database.
Задайте в
FIREBASE_CPP_SDK_DIR
среды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 ++.
Доступные библиотеки (рабочий стол)
Пакет SDK Firebase C ++ включает поддержку рабочего процесса рабочего стола для подмножества функций, позволяя использовать определенные части Firebase в автономных сборках рабочего стола в Windows, macOS и Linux.
Продукт Firebase | Ссылки на библиотеки (с использованием CMake) |
---|---|
Аутентификация | firebase_auth (обязательно) firebase_app |
Cloud Firestore (альфа) | firebase_firestore firebase_auth firebase_app |
Облачные функции | firebase_functions (обязательно) firebase_app |
Облачное хранилище | firebase_storage (обязательно) firebase_app |
База данных в реальном времени | firebase_database (обязательно) firebase_app |
Удаленная конфигурация | firebase_remote_config (обязательно) firebase_app |
Firebase предоставляет оставшиеся библиотеки рабочего стола в виде заглушек (нефункциональных) для удобства при сборке для Windows, macOS и Linux. Следовательно, вам не нужно условно компилировать код для рабочего стола.
Рабочий стол базы данных в реальном времени
Пакет 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 |
---|---|
Аутентификация | advapi32, ws2_32, crypt32 |
Cloud Firestore | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
Облачные функции | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Облачное хранилище | advapi32, ws2_32, crypt32 |
База данных в реальном времени | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
Удаленная конфигурация | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
библиотеки macOS
Для macOS (Darwin) предусмотрены версии библиотек для 64-битной (x86_64) платформы. Для вашего удобства также предусмотрены рамки.
Обратите внимание, что библиотеки macOS были протестированы с использованием Xcode 10.3.0.
При создании настольных приложений 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
системную библиотеку pthread
со своим проектом. Обратитесь к документации вашего компилятора для получения дополнительной информации. Если вы строите с GCC 5 или новее, определите -D_GLIBCXX_USE_CXX11_ABI=0
.
Следующие шаги
Ознакомьтесь с примерами приложений Firebase .
Изучите SDK с открытым исходным кодом на GitHub .
Подготовьтесь к запуску вашего приложения:
- Настройте оповещения о бюджете для своего проекта в консоли Google Cloud.
- Следите за своей панелью использования и выставления счетов в консоли Firebase.
- Ознакомьтесь с контрольным списком запуска Firebase .