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

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

Улучшите свои игры на C ++ с помощью наших пакетов SDK Firebase C ++, которые предоставляют интерфейс 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.

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

  1. Зайдите в консоль Firebase .

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

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

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

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

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

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

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

  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. В свой 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 , затем откройте файл .xcworkspace в Xcode.

      pod install
      open your-app.xcworkspace

  3. Добавьте фреймворки Firebase из распакованного SDK.

    Самый простой способ добавить эти фреймворки - обычно перетаскивать их из окна Finder прямо в панель Xcode Project Navigator (крайняя левая панель по умолчанию; или щелкнуть значок файла в верхнем левом углу Xcode).

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

    2. Добавьте платформу для каждого продукта Firebase, который вы хотите использовать. Например, чтобы использовать Firebase Authentication, добавьте 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', '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'

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

Метод swizzling

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

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

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

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

    Приведенные ниже шаги служат примером того, как добавить любой поддерживаемый продукт Firebase в ваш проект C ++. В этом примере мы рассмотрим добавление Firebase Authentication и Firebase Realtime Database.

    1. Задайте в FIREBASE_CPP_SDK_DIR среды 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 ++.

Доступные библиотеки (рабочий стол)

Пакет SDK Firebase C ++ включает поддержку рабочего процесса рабочего стола для подмножества функций, позволяя использовать определенные части 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
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 10.3.0.

При создании настольных приложений 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 системную библиотеку pthread со своим проектом. Обратитесь к документации вашего компилятора для получения дополнительной информации. Если вы строите с GCC 5 или новее, определите -D_GLIBCXX_USE_CXX11_ABI=0 .

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