Google стремится продвигать расовую справедливость для черных сообществ. Смотри как.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Добавьте Firebase в свой проект C ++.

Включите ваши игры на C ++ с помощью наших Firebase C ++ SDK, которые предоставляют интерфейс C ++ поверх Firebase для iOS и Android.

Получите доступ к Firebase полностью из вашего кода C ++, без необходимости писать какой-либо платформенный код. Firebase SDK также переводит многие языковые идиомы, используемые Firebase, в интерфейс, более знакомый разработчикам C ++.

Узнайте больше информации о включении игр в Firebase на нашей странице игр Firebase .

Уже добавили Firebase в ваш проект C ++? Убедитесь, что вы используете последнюю версию Firebase C ++ SDK .

Предпосылки

  • Установите предпочитаемый вами редактор или IDE, например Android Studio, IntelliJ или VS Code.

  • Получите Android SDK .

  • Убедитесь, что ваш проект соответствует этим требованиям:

    • Целевой уровень API 16 (Jelly Bean) или более поздний

    • Использует Gradle и настроен с CMake

  • Настройте физическое устройство или используйте эмулятор для запуска вашего приложения.

    • Эмуляторы должны использовать изображение эмулятора с Google Play.

    • Для некоторых библиотек C ++ на клиентском устройстве требуются сервисы Google Play; Просмотрите список на этой странице.

  • Войдите в Firebase, используя свой аккаунт Google.

Шаг 2 : Создать проект Firebase

Прежде чем вы сможете добавить Firebase в ваш проект C ++, вам нужно создать проект Firebase для подключения к вашему проекту C ++. Посетите Understand Firebase Projects, чтобы узнать больше о проектах Firebase.

Шаг 3 : Зарегистрируйте свое приложение в Firebase

После того, как у вас есть проект Firebase, вы можете добавить в него свое приложение для Android.

Посетите раздел «Понимание проектов Firebase», чтобы узнать больше о передовых методах и соображениях по добавлению приложений в проект Firebase, в том числе о том, как обрабатывать несколько вариантов сборки.

  1. Перейти к консоли Firebase .

  2. В центре страницы обзора проекта щелкните значок Android ( ), чтобы запустить рабочий процесс установки.

    Если вы уже добавили приложение в проект Firebase, нажмите « Добавить приложение», чтобы отобразить параметры платформы.

  3. Введите имя пакета вашего приложения в поле имени пакета Android .

  4. (Необязательно) Введите другую информацию о приложении: псевдоним приложения и сертификат подписи отладки SHA-1 .

  5. Нажмите Зарегистрировать приложение .

Шаг 4 : Добавьте файл конфигурации Firebase

  1. Нажмите Скачать google-services.json, чтобы получить файл конфигурации Firebase для Android.

  2. Откройте ваш проект C ++ в IDE, затем добавьте ваш файл конфигурации в ваш проект:

  3. (Только для Gradle) Чтобы включить службы Firebase в своем проекте C ++, добавьте плагин google-services в файл build.gradle верхнего уровня.

    1. Добавьте правила, чтобы включить плагин 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 line:
            classpath 'com.google.gms:google-services:4.3.3'  // Google Services plugin
          }
        }
      
        allprojects {
          // ...
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
            // ...
          }
        }
       
    2. Примените плагин Google Services Gradle:

         apply plugin: 'com.android.application'
        // Add the following line:
        apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
        android {
          // ...
        }
       
  4. Вы закончили с настройкой задач в консоли Firebase. Продолжайте добавлять Firebase C ++ SDK ниже.

Шаг 5 : Добавьте Firebase C ++ SDK

Шаги в этом разделе являются примером того, как добавить поддерживаемые продукты Firebase в ваш проект Firebase C ++.

  1. Загрузите Firebase C ++ SDK , а затем разархивируйте SDK куда угодно.

    Firebase C ++ SDK не зависит от платформы, но содержит библиотеки для конкретной платформы.

  2. Укажите расположение распакованного SDK в файле gradle.properties вашего проекта:

    systemProp.firebase_cpp_sdk.dir= full-path-to-SDK
    
  3. Добавьте следующее в файл 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"
    
  4. Добавьте следующее в свой файл 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
    }
    
  5. В файл 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}")
    
  6. Синхронизируйте ваше приложение, чтобы убедиться, что все зависимости имеют необходимые версии.

  7. Если вы добавили 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, make-файлы, Visual Studio и т. Д.), Вы можете использовать этот сценарий для автоматизации создания строковых ресурсов Android .

ProGuard

Многие системы сборки Android используют ProGuard для сборок в режиме Release, чтобы уменьшить размеры приложений и защитить исходный код 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 Не требуется (обычно)
аналитика Не требуется
Аутентификация необходимые
Облачный Пожарный Магазин необходимые
Облачные функции необходимые
Облачные сообщения необходимые
Облачное хранилище необходимые
Динамические ссылки необходимые
База данных в реальном времени необходимые
Удаленная настройка необходимые

Сервисы 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 оба следующих kInitResultFailedMissingDependency :

  • Сервисы Google Play недоступны на клиентском устройстве.
  • Вы используете com.google.android.gms:play-services-ads-lite .

Настроить рабочий процесс на рабочем столе ( бета )

Когда вы создаете игру, зачастую гораздо проще сначала протестировать ее на настольных платформах, а затем развернуть и протестировать на мобильных устройствах в дальнейшем. Для поддержки этого рабочего процесса мы предоставляем подмножество Firebase C ++ SDK, которые могут работать в Windows, macOS, Linux и из редактора C ++.

  1. Для рабочих процессов на рабочем столе вам необходимо выполнить следующее:

    1. Настройте ваш проект C ++ для CMake.
    2. Создать проект Firebase
    3. Зарегистрируйте свое приложение (iOS или Android) с помощью Firebase
    4. Добавить файл конфигурации Firebase для мобильной платформы
  2. Создайте настольную версию файла конфигурации 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, чтобы узнать больше о файлах конфигурации.

  3. Добавьте Firebase SDK в ваш проект C ++.

    Следующие шаги служат примером того, как добавить любой поддерживаемый продукт Firebase в ваш проект C ++. В этом примере мы рассмотрим добавление аутентификации Firebase и базы данных Firebase Realtime.

    1. Задайте для переменной среды FIREBASE_CPP_SDK_DIR расположение распакованного пакета Firebase C ++ SDK.

    2. В файл 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}")
      
  4. Запустите ваше приложение C ++.

Доступные библиотеки (рабочий стол)

Firebase C ++ SDK включает в себя поддержку рабочего процесса для подмножества функций, что позволяет использовать определенные части 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
Облачный Пожарный Магазин 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 CoreFoundation
  • Foundation системы MacOS
  • Система Security MacOS
  • GSS macOS системный фреймворк
  • Система MacOS Kerberos
  • 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 .

Следующие шаги