Как добавить Firebase в проект C++

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

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

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

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


Требования

  • Установите следующие компоненты:

    • Xcode 26.2 или более поздней версии
    • CocoaPods 1.12.0 или более поздней версии.
  • Убедитесь, что в вашем проекте используются следующие версии платформы или более поздние:

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

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

Шаг 2. Создайте проект Firebase

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

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

Чтобы использовать Firebase в приложении для Apple, зарегистрируйте его в проекте Firebase. Регистрацию приложения часто называют добавлением приложения в проект.

  1. Откройте консоль Firebase.

  2. На странице Project Overview (Обзор проекта) нажмите на значок iOS+. Будет запущен мастер настройки.

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

  3. Введите идентификатор пакета приложения в поле bundle ID.

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

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

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

  1. Нажмите Скачать GoogleService-Info.plist, чтобы получить файл конфигурации для платформы Apple Firebase.

  2. Откройте проект C++ в интегрированной среде разработки и перетащите файл конфигурации в корневой каталог проекта.

  3. Если появится запрос, выберите добавление файла конфигурации во все целевые объекты.

Вы выполнили все задачи по настройке в консоли Firebase. Перейдите к разделу Добавление Firebase C++ SDK ниже.

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

В этом разделе приведен пример того, как добавить поддерживаемые продукты Firebase в проект Firebase C++.

  1. Скачайте Firebase C++ SDK и распакуйте его в удобном месте.

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

  2. Добавьте pods Firebase из распакованного SDK.

    1. Создайте файл Podfile, если у вас его ещё нет:

      cd your-app-directory
      pod init

    2. Добавьте в Podfile нужные вам модули 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'
    3. Установите pods, а затем откройте файл .xcworkspace в Xcode.

      pod install
      open your-app.xcworkspace

  3. Добавьте фреймворки Firebase из распакованного SDK.

    Обычно проще всего добавить эти фреймворки, перетащив их из окна Finder прямо в панель Навигатор проекта в Xcode (по умолчанию она находится в крайнем левом углу; также можно нажать на значок файла в левом верхнем углу Xcode).

    1. Добавьте фреймворк Firebase C++ firebase.framework, который необходим для использования любого продукта Firebase.

    2. Добавьте фреймворк для каждого продукта Firebase, который вы хотите использовать. Например, чтобы использовать свойство Firebase Authentication, нужно добавить разметку типа firebase_auth.framework.

  4. Вернитесь в консоль Firebase и в рабочем процессе настройки нажмите Далее.

  5. Если вы добавили Analytics, запустите приложение, чтобы отправить в Firebase подтверждение того, что вы успешно интегрировали Firebase. В противном случае этот шаг можно пропустить.

    В журналах устройства появится запись о том, что инициализация Firebase завершена. Если вы запустили приложение на эмуляторе с доступом к сети, в консоли Firebase появится уведомление о том, что подключение приложения установлено.

Готово! Приложение C++ зарегистрировано и настроено для использования продуктов Firebase.

Доступные библиотеки

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

Доступные библиотеки для платформ Apple

Обратите внимание, что библиотеки C++ для Android перечислены на странице настройки для Android.

У каждого продукта Firebase разные зависимости. Обязательно добавьте в Podfile и проект C++ все перечисленные зависимости для нужного продукта Firebase.

Каждый продукт Firebase может поддерживать только определенные платформы Apple OS (iOS, tvOS и т. д.). Узнайте, какие платформы поддерживаются каждой библиотекой, в статье C++ и Firebase.

Продукт Firebase Компоненты Framework и Pod
Analytics (обязательно) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '12.19.0'
App Check (обязательно) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '12.19.0'
Authentication (обязательно) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '12.19.0'
Cloud Firestore (обязательно) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '12.19.0'
pod 'FirebaseAuth', '12.19.0'
Cloud Functions (обязательно) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '12.19.0'
Cloud Messaging (обязательно) firebase.framework
firebase_messaging.framework
(рекомендуется) firebase_analytics.framework

pod 'FirebaseMessaging', '12.19.0'
(рекомендуется) pod 'FirebaseAnalytics', '12.19.0'
Cloud Storage (обязательно) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '12.19.0'
Realtime Database (обязательно) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '12.19.0'
Remote Config (обязательно) firebase.framework
firebase_remote_config.framework
(рекомендуется) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '12.19.0'
(рекомендуется) pod 'FirebaseAnalytics', '12.19.0'
УСТАРЕВШИЕ ИЛИ НЕПОДДЕРЖИВАЕМЫЕ БИБЛИОТЕКИ
Dynamic Links (обязательно) firebase.framework
firebase_dynamic_links.framework
(рекомендуется) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '12.19.0'
(рекомендуется) pod 'FirebaseAnalytics', '12.19.0'

Дополнительная информация о настройке на мобильном устройстве

Подмена методов

В iOS для некоторых событий приложения (например, открытия URL и получения уведомлений) требуется, чтобы делегат приложения реализовал определенные методы. Например, чтобы получать уведомления, делегат приложения должен реализовать метод application:didReceiveRemoteNotification:. Поскольку у каждого приложения iOS есть свой делегат, Firebase использует замену методов, которая позволяет заменить один метод другим, чтобы добавить собственные обработчики в дополнение к тем, которые вы могли реализовать.

Библиотекам Dynamic Links и Cloud Messaging необходимо прикрепить обработчики к делегату приложения с помощью метода swizzling. Если вы используете какой-либо из этих продуктов Firebase, во время загрузки Firebase определит ваш класс AppDelegate и подменит необходимые методы, связав вызов с существующей реализацией метода.

Как настроить рабочий процесс на компьютере (бета)

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

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

    1. Настройте проект C++ для CMake.
    2. Как создать проект Firebase
    3. Как зарегистрировать приложение (для iOS или Android) в Firebase
    4. Как добавить файл конфигурации Firebase для мобильной платформы
  2. Создайте версию файла конфигурации Firebase для компьютера:

    • Если вы добавили файл google-services.json для Android, при запуске приложения 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.

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

    Ниже приведены инструкции по добавлению любого поддерживаемого продукта Firebase в проект C++. В этом примере мы добавим свойства Firebase Authentication и Firebase Realtime Database.

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

    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)
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.

При создании приложений для ПК с Windows на языке C++ свяжите с проектом следующие библиотеки 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 26.2.

При создании приложений для macOS на языке C++ свяжите с проектом следующие библиотеки:

  • Системная библиотека 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.

При создании приложений для Linux на языке C++ свяжите системную библиотеку pthread со своим проектом. Дополнительную информацию можно найти в документации к компилятору. Если вы используете GCC 5 или более позднюю версию, определите -D_GLIBCXX_USE_CXX11_ABI=0.

Дальнейшие действия