Добавьте 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 .

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