Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

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

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

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

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

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

Предпосылки

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

    • Xcode 10.3.0 или новее
    • CocoaPods 1.4.0 или позже
  • Убедитесь, что ваш проект ориентирован на iOS 8 или более позднюю версию.

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

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

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

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

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

После того, как у вас есть проект Firebase, вы можете добавить в него свое iOS-приложение.

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

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

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

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

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

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

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

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

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

  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 'Firebase/Analytics'
      # 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 'Firebase/Auth' pod 'Firebase/Database'

      Аналитика не включена

      # 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 'Firebase/Auth'
      pod 'Firebase/Database'
    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, что инициализация завершена. Если вы запустили свое приложение на эмуляторе, который имеет доступ к сети, консоль 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 'Firebase/AdMob', '6.24.0'
(обязательно) pod 'Firebase/Analytics', '6.24.0'
аналитика (обязательно) firebase.framework
firebase_analytics.framework

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

pod 'Firebase/Auth', '6.24.0'
Cloud Firestore (альфа) (обязательно) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'Firebase/Firestore', '6.24.0'
pod 'Firebase/Auth', '6.24.0'
Облачные функции (обязательно) firebase.framework
firebase_functions.framework

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

pod 'Firebase/Messaging', '6.24.0'
(рекомендуется) pod 'Firebase/Analytics', '6.24.0'
Облачное хранилище (обязательно) firebase.framework
firebase_storage.framework

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

pod 'Firebase/DynamicLinks', '6.24.0'
(рекомендуется) pod 'Firebase/Analytics', '6.24.0'
База данных в реальном времени (обязательно) firebase.framework
firebase_database.framework

pod 'Firebase/Database', '6.24.0'
Удаленная настройка (обязательно) firebase.framework
firebase_remote_config.framework
(рекомендуется) firebase_analytics.framework

pod 'Firebase/RemoteConfig', '6.24.0'
(рекомендуется) pod 'Firebase/Analytics', '6.24.0'

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

Метод метания

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

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

Настроить рабочий процесс на рабочем столе ( бета )

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

    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)
Аутентификация firebase_auth
(обязательно) firebase_app
Cloud 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. Следовательно, вам не нужно условно компилировать код для таргетинга на рабочий стол.

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

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, 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 10.3.0.

При создании приложений C ++ для настольных компьютеров в macOS свяжите следующее с вашим проектом:

  • системная библиотека pthread
  • CoreFoundation системы MacOS CoreFoundation
  • Foundation системы MacOS
  • Система Security MacOS
  • GSS macOS системный фреймворк
  • Система MacOS Kerberos
  • 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 системную библиотеку pthread с вашим проектом. Обратитесь к документации вашего компилятора для получения дополнительной информации. Если вы строите с GCC 5 или новее, определите -D_GLIBCXX_USE_CXX11_ABI=0 .

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