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

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

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

Дополнительную информацию о том, как улучшить свои игры с помощью Firebase, можно найти на нашей странице игр Firebase .

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


Предпосылки

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

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

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

    Для Cloud Messaging на платформах Apple необходимы следующие предварительные условия:

    • Настройте физическое устройство Apple .
    • Получите ключ аутентификации push-уведомлений Apple для своей учетной записи разработчика Apple .
    • Включите Push-уведомления в Xcode в разделе Приложение > Возможности .

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

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

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

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

    • Чтобы добавить ресурсы Firebase в существующий проект Google Cloud , введите имя проекта или выберите его из раскрывающегося меню.

    • Чтобы создать новый проект, введите имя проекта. Вы также можете изменить идентификатор проекта, отображаемый под именем проекта.

  2. При появлении соответствующего запроса ознакомьтесь с условиями Firebase и примите их.

  3. Нажмите «Продолжить» .

  4. (Необязательно) Настройте Google Analytics для своего проекта, что обеспечит оптимальную работу с использованием следующих продуктов Firebase: Firebase A/B Testing , Cloud Messaging , Crashlytics , In-App Messaging и Remote Config (включая Personalization ).

    Либо выберите существующую учетную запись Google Analytics , либо создайте новую учетную запись. Если вы создаете новую учетную запись, выберите местоположение отчетов Analytics , затем примите настройки совместного использования данных и условия Google Analytics для вашего проекта.

  5. Нажмите «Создать проект» (или «Добавить Firebase» , если вы добавляете Firebase в существующий проект Google Cloud ).

Firebase автоматически предоставляет ресурсы для вашего проекта Firebase. После завершения процесса вы будете перенаправлены на страницу обзора вашего проекта Firebase в консоли Firebase .

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

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

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

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

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

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

    • Идентификатор пакета однозначно идентифицирует приложение в экосистеме Apple.

    • Найдите идентификатор вашего пакета: откройте свой проект в Xcode, выберите приложение верхнего уровня в навигаторе проектов, затем выберите вкладку «Общие» .

      Значение поля «Идентификатор пакета» — это идентификатор пакета (например, com.yourcompany.yourproject ).

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

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

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

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

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

    • Файл конфигурации Firebase содержит уникальные, но не секретные идентификаторы для вашего проекта. Чтобы узнать больше об этом файле конфигурации, посетите Understand Firebase Projects .

    • Вы можете повторно загрузить файл конфигурации Firebase в любое время.

    • Убедитесь, что имя файла конфигурации не дополнено дополнительными символами, например (2) .

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

  3. При появлении соответствующего запроса выберите добавление файла конфигурации ко всем целям.

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

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

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

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

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

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

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

      cd your-app-directory
      pod init

    2. Добавьте в свой Podfile модули Firebase, которые вы хотите использовать в своем приложении.

      # 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'
      # 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 непосредственно в панель Project Navigator 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++ читайте в справочной документации и в нашем выпуске 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', '11.10.0'
(обязательно) pod 'FirebaseAnalytics', '11.10.0'
Analytics (обязательно) firebase.framework
firebase_analytics.framework

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

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

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

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

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

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

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

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

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

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

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

Метод свизлинга

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

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

Настройка рабочего процесса на рабочем столе ( бета-версия )

Когда вы создаете игру, часто бывает гораздо проще сначала протестировать ее на настольных платформах, а затем развернуть и протестировать на мобильных устройствах позже в процессе разработки. Для поддержки этого рабочего процесса мы предоставляем подмножество 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 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 для рабочего стола

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
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
  • Фреймворк системы macOS Foundation
  • 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 .

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