Как добавить Firebase в проект 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. В центре обзорной страницы проекта нажмите на значок iOS+, чтобы запустить мастер настройки.

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

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

  4. При необходимости укажите другие сведения о приложении: псевдоним и идентификатор App Store.

  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 и распакуйте архив в удобное место.

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

  2. Добавьте pod-файлы 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. Установите pod-файлы и откройте файл .xcworkspace в Xcode.

      pod install
      open your-app.xcworkspace

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

pod 'FirebaseFunctions', '13.0.0'
Cloud Messaging (required) firebase.framework
firebase_messaging.framework
(recommended) firebase_analytics.framework

pod 'FirebaseMessaging', '13.0.0'
(recommended) pod 'FirebaseAnalytics', '13.0.0'
Cloud Storage (обязательно) firebase.framework
firebase_storage.framework

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

pod 'FirebaseDatabase', '13.0.0'
Remote Config (required) firebase.framework
firebase_remote_config.framework
(recommended) firebase_analytics.framework

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

pod 'FirebaseDynamicLinks', '13.0.0'
(recommended) pod 'FirebaseAnalytics', '13.0.0'

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

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

В 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++.

    Ниже описано, как добавить в проект C++ любой поддерживаемый продукт Firebase. В этом примере мы добавим 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++.

Доступные библиотеки (компьютеры)

SDK Firebase C++ включает поддержку рабочих процессов на компьютерах для некоторых функций, что позволяет использовать определенные части 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 системная библиотека
  • 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.

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