Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

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

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

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

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

Предпосылки

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

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

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

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

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

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

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

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

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

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

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

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

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

  5. Щелкните Зарегистрировать приложение .

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

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

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

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

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

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

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

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

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

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

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

      cd your-app-directory
      pod init

    2. В свой подфайл добавьте модули 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, добавьте firebase_auth.framework .

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

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

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

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

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

Узнайте больше о библиотеках C++ Firebase в справочной документации и в нашем выпуске 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', '10.9.0'
(обязательно) pod 'FirebaseAnalytics', '10.9.0'
Аналитика (обязательно) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.9.0'
Проверка приложения (обязательно) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '10.9.0'
Аутентификация (обязательно) firebase.framework
firebase_auth.framework

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

pod 'FirebaseFirestore', '10.9.0'
pod 'FirebaseAuth', '10.9.0'
Облачные функции (обязательно) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.9.0'
Облачный обмен сообщениями (обязательно) firebase.framework
firebase_messaging.framework
(рекомендуется) firebase_analytics.framework

pod 'FirebaseMessaging', '10.9.0'
(рекомендуется) pod 'FirebaseAnalytics', '10.9.0'
Облачное хранилище (обязательно) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.9.0'
Динамические ссылки (обязательно) firebase.framework
firebase_dynamic_links.framework
(рекомендуется) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.9.0'
(рекомендуется) pod 'FirebaseAnalytics', '10.9.0'
База данных реального времени (обязательно) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.9.0'
Удаленная конфигурация (обязательно) firebase.framework
firebase_remote_config.framework
(рекомендуется) firebase_analytics.framework

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

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

Метод swizzling

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

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

    • Если вы добавили файл 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 и базы данных Firebase Realtime.

    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)
Проверка приложения firebase_app_check
(обязательно) firebase_app
Аутентификация firebase_auth
(обязательно) firebase_app
Облако Firestore firebase_firestore
firebase_auth
firebase_app
Облачные функции firebase_functions
(обязательно) firebase_app
Облачное хранилище firebase_storage
(обязательно) firebase_app
База данных реального времени firebase_database
(обязательно) firebase_app
Удаленная конфигурация firebase_remote_config
(обязательно) firebase_app

Firebase предоставляет оставшиеся настольные библиотеки в виде заглушек (нефункциональных) реализаций для удобства при сборке для Windows, macOS и Linux. Поэтому вам не нужно условно компилировать код для рабочего стола.

Рабочий стол базы данных реального времени

SDK 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
Проверка приложения advapi32, ws2_32, crypt32
Аутентификация advapi32, ws2_32, crypt32
Облако Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
Облачные функции advapi32, ws2_32, crypt32, rpcrt4, ole32
Облачное хранилище advapi32, ws2_32, crypt32
База данных реального времени advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Удаленная конфигурация advapi32, ws2_32, crypt32, rpcrt4, ole32

библиотеки macOS

Для macOS (Darwin) предоставляются версии библиотек для 64-разрядной (x86_64) платформы. Рамки также предоставляются для вашего удобства.

Обратите внимание, что библиотеки macOS были протестированы с использованием Xcode 13.3.1.

При создании настольных приложений 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 .

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