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

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

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

Более подробную информацию о том, как расширить возможности ваших игр с помощью Firebase, вы найдете на нашей странице, посвященной играм Firebase .

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


Предварительные требования

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

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

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

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

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

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

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

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

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

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

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

  3. Введите идентификатор пакета вашего приложения в поле «Идентификатор пакета» .

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

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

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

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

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

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

Настройка задач в консоли Firebase завершена. Перейдите к разделу «Добавление SDK Firebase C++» ниже.

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

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

  1. Загрузите Firebase C++ SDK , затем распакуйте его в удобное для вас место.

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

  2. Добавьте модули 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. Установите модули, затем откройте файл .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 уведомит вас о завершении подключения приложения.

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

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

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

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

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

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

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

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

pod 'FirebaseAdMob', '12.6.0'
(обязательно) pod 'FirebaseAnalytics', '12.6.0'
Analytics (обязательно) firebase.framework
firebase_analytics.framework

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

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

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

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

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

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

pod 'FirebaseStorage', '12.6.0'
Dynamic Links (обязательно) firebase.framework
firebase_dynamic_links.framework
(рекомендуется) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '12.6.0'
(рекомендуется) pod 'FirebaseAnalytics', '12.6.0'
Realtime Database (обязательно) firebase.framework
firebase_database.framework

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

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

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

Метод перетасовки

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

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

    • Если вы добавили файл GoogleService-Info.plist для iOS , перед запуском приложения необходимо преобразовать этот мобильный файл в файл конфигурации Firebase для настольных компьютеров . Для преобразования файла выполните следующую команду из той же директории, что и файл GoogleService-Info.plist :

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

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

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

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

    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)
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: Многопоточность / MT против многопоточной DLL / MD
  • Цель: Релиз против отладки

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

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