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

Firebase C++ SDK предоставляет интерфейс C++ для Firebase SDK.

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

Узнайте больше о том, как улучшить свои игры с помощью Firebase, на странице Firebase Games.

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


Требования

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

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

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

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

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

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

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

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

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

  2. В центре обзорной страницы проекта нажмите на значок iOS+, чтобы запустить мастер настройки.

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

  3. В поле Идентификатор пакета укажите идентификатор пакета приложения.

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

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

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

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

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

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

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

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

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

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

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

  2. Для установки зависимостей Firebase SDK для платформ Apple и управления ими используйте Swift Package Manager.

    1. Откройте проект приложения в Xcode и перейдите в меню File (Файл) > Add Package Dependencies (Добавить зависимости пакетов).

    2. Когда появится запрос, добавьте хранилище Firebase SDK для платформ Apple:

      https://github.com/firebase/firebase-ios-sdk.git

    3. Для правила зависимости выберите Точная версия и введите 13.1.1.

    4. Выберите библиотеки Firebase, которые вы хотите использовать в приложении (например, FirebaseAuth и FirebaseDatabase). Если в вашем проекте Firebase включена Google Analytics, обязательно добавьте FirebaseAnalytics.

    После этого Xcode автоматически начнет распознавать и скачивать зависимости в фоновом режиме.

  3. Добавьте XCFrameworks Firebase из каталога xcframeworks распакованного SDK.

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

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

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

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

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

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

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

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

Подробную информацию о библиотеках Firebase на C++ можно найти в справочной документации и в нашем SDK с открытым исходным кодом на GitHub.

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

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

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

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

Продукт Firebase Библиотеки XCFrameworks и Swift Package Manager
Analytics (required) firebase.xcframework
firebase_analytics.xcframework

FirebaseAnalytics (13.1.1)
App Check (required) firebase.xcframework
firebase_app_check.xcframework

FirebaseAppCheck (13.1.1)
Authentication (required) firebase.xcframework
firebase_auth.xcframework

FirebaseAuth (13.1.1)
Cloud Firestore (required) firebase.xcframework
firebase_firestore.xcframework
firebase_auth.xcframework

FirebaseFirestore (13.1.1)
FirebaseAuth (13.1.1)
Cloud Functions (required) firebase.xcframework
firebase_functions.xcframework

FirebaseFunctions (13.1.1)
Cloud Messaging (required) firebase.xcframework
firebase_messaging.xcframework
(recommended) firebase_analytics.xcframework

FirebaseMessaging (13.1.1)
(recommended) FirebaseAnalytics (13.1.1)
Cloud Storage (required) firebase.xcframework
firebase_storage.xcframework

FirebaseStorage (13.1.1)
Realtime Database (required) firebase.xcframework
firebase_database.xcframework

FirebaseDatabase (13.1.1)
Remote Config (required) firebase.xcframework
firebase_remote_config.xcframework
(recommended) firebase_analytics.xcframework

FirebaseRemoteConfig (13.1.1)
(recommended) FirebaseAnalytics (13.1.1)
УСТАРЕВШИЕ ИЛИ НЕПОДДЕРЖИВАЕМЫЕ БИБЛИОТЕКИ
Dynamic Links (required) firebase.xcframework
firebase_dynamic_links.xcframework
(recommended) firebase_analytics.xcframework

FirebaseDynamicLinks (13.1.1)
(recommended) FirebaseAnalytics (13.1.1)

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

Интеграция без использования Swift Package Manager

Если вы не хотите использовать Swift Package Manager для управления зависимостями SDK Firebase для платформ Apple, ознакомьтесь с разделом Интеграция без использования Swift Package Manager в руководстве по настройке платформ Apple, чтобы узнать об альтернативных вариантах интеграции.

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

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

Библиотекам Dynamic Links и Cloud Messaging необходимо прикрепить обработчики к делегату приложения с помощью подмены метода. Если вы используете любой из этих продуктов 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. Добавьте Firebase SDK в проект C++.

    Ниже приведен пример того, как добавить любой поддерживаемый продукт 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 (компьютеры)

SDK Realtime Database для ПК использует REST для доступа к базе данных, поэтому вам необходимо объявить индексы, которые вы используете с Query::OrderByChild() на ПК, иначе прослушиватели не будут работать.

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

Библиотеки Windows

Для Windows версии библиотек предоставляются на основе следующих данных:

  • Платформа сборки: 32-разрядная (x86) или 64-разрядная (x64) версия.
  • Среда выполнения Windows: Multithreaded / MT или Multithreaded DLL /MD
  • Цель: Release или Debug

Обратите внимание, что перечисленные ниже библиотеки были протестированы с помощью 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 26.2.

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

  • pthread системная библиотека
  • Системный фреймворк macOS CoreFoundation
  • Системный фреймворк macOS Foundation
  • Security Системный фреймворк macOS
  • Системный фреймворк macOS GSS
  • Системный фреймворк macOS Kerberos
  • Системный фреймворк macOS SystemConfiguration

Дополнительную информацию можно найти в документации компилятора.

Библиотеки 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.

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