Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

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

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

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

Предпосылки

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

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

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

  • Войдите в 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 .

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

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

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

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

pod 'FirebaseAdMob', '9.5.0'
(обязательно) pod 'FirebaseAnalytics', '9.5.0'
Аналитика (обязательно) firebase.framework
firebase_analytics.framework

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

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

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

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

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

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

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

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

pod 'FirebaseRemoteConfig', '9.5.0'
(рекомендуется) pod 'FirebaseAnalytics', '9.5.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_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
Облако 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 .

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