Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

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

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

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

Предпосылки

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

    • Xcode 12 или новее
    • CocoaPods 1.10.0 или новее
  • Убедитесь, что ваш проект нацелен на iOS 10 или новее.

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

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

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

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

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

Создав проект Firebase, вы можете добавить в него свое приложение для iOS.

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

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

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

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

  3. Введите расслоение идентификатор приложения в прошивкой пачке ID поля.

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

  5. Выберите Зарегистрировать приложение.

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

  1. Нажмите кнопку Загрузить GoogleService-info.plist , чтобы получить ваш конфигурационный файл Firebase IOS.

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

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

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

Шаг 5: Добавить SDKs Firebase C ++

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

  1. Скачать Firebase C ++ SDK , а затем распаковать SDK где - то удобно.

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

  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 окна непосредственно в Project Navigator панели Xcode ( в дальней левой панели по умолчанию, или щелкните значок файла в верхнем левом углу Xcode).

    1. Добавить в Firebase C ++ рамочного firebase.framework , который требуется использовать какой - либо продукт Firebase.

    2. Добавьте платформу для каждого продукта Firebase, который вы хотите использовать. Например, чтобы использовать Firebase аутентификации, добавьте firebase_auth.framework .

  4. Назад в Firebase консоли, в рабочем процессе установки, нажмите кнопку Далее.

  5. Если вы добавили Google 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', '8.7.0'
(обязательно) pod 'Firebase/Analytics', '8.7.0'
Аналитика (обязательно) firebase.framework
firebase_analytics.framework

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

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

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

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

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

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

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

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

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

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

Метод swizzling

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

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

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

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

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

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