Добавьте Firebase в свой проект C ++
Улучшите свои игры на C ++ с помощью наших пакетов SDK Firebase C ++, которые предоставляют интерфейс C ++ поверх Firebase для iOS и Android.
Полностью получайте доступ к Firebase из вашего кода C ++, без необходимости писать собственный код платформы. SDK Firebase также переводит многие языковые идиомы, используемые Firebase, в интерфейс, более знакомый разработчикам на C ++.
Узнайте больше о том, как включить в свои игры Firebase, на нашей странице игр Firebase .
Уже добавили Firebase в свой проект C ++? Убедитесь, что вы используете последнюю версию Firebase C ++ SDK .
Предпосылки
Установите следующее:
- Xcode 10.3.0 или новее
- CocoaPods 1.9.0 или новее
Убедитесь, что ваш проект нацелен на iOS 10 или новее.
Настройте физическое устройство iOS или используйте симулятор iOS для запуска вашего приложения.
Для облачного обмена сообщениями на iOS выполните следующие действия:
- Настройте физическое устройство iOS .
- Получите ключ аутентификации Apple Push Notification для своей учетной записи Apple Developer .
- Включите push-уведомления в Xcode в разделе « Приложение»> «Возможности» .
Войдите в Firebase, используя свою учетную запись Google.
Шаг 2. Создайте проект Firebase
Прежде чем вы сможете добавить Firebase в свой проект C ++, вам необходимо создать проект Firebase для подключения к вашему проекту C ++. Посетите Understand Firebase Projects, чтобы узнать больше о проектах Firebase.
Шаг 3. Зарегистрируйте приложение в Firebase
После того, как у вас есть проект Firebase, вы можете добавить в него свое приложение для iOS.
Посетите Understand Firebase Projects, чтобы узнать больше о передовых методах и рекомендациях по добавлению приложений в проект Firebase, в том числе о том, как обрабатывать несколько вариантов сборки.
Перейдите в консоль Firebase .
В центре страницы обзора проекта щелкните значок iOS (
), чтобы запустить рабочий процесс настройки.Если вы уже добавили приложение в свой проект Firebase, нажмите « Добавить приложение», чтобы отобразить параметры платформы.
Введите идентификатор пакета вашего приложения в поле идентификатора пакета iOS .
Идентификатор пакета однозначно определяет приложение в экосистеме Apple.
Найдите свой идентификатор пакета: откройте свой проект iOS в Xcode, выберите приложение верхнего уровня в навигаторе проекта, затем выберите вкладку Общие .
Значением поля Идентификатор пакета является идентификатор пакета iOS (например,
com.yourcompany.yourproject
).Имейте в виду, что значение идентификатора пакета чувствительно к регистру, и его нельзя изменить для этого приложения Firebase iOS после его регистрации в вашем проекте Firebase.
(Необязательно) Введите другую информацию о приложении: псевдоним приложения и идентификатор в магазине приложений .
Псевдоним приложения : внутренний удобный идентификатор, который виден только вам в консоли Firebase.
Идентификатор App Store : используется Firebase Dynamic Links для перенаправления пользователей на страницу вашего App Store и Google Analytics для импорта событий конверсии в Google Ads . Если у вашего приложения еще нет идентификатора App Store ID, вы можете добавить его позже в настройках вашего проекта .
Щелкните Зарегистрировать приложение .
Шаг 4. Добавьте файл конфигурации Firebase
Нажмите Загрузить GoogleService-Info.plist, чтобы получить файл конфигурации Firebase iOS.
Файл конфигурации Firebase содержит уникальные, но не секретные идентификаторы вашего проекта. Чтобы узнать больше об этом файле конфигурации, посетите Understand Firebase Projects .
Вы можете повторно загрузить файл конфигурации Firebase в любое время.
Убедитесь, что к имени файла конфигурации не добавлены дополнительные символы, например
(2)
.
Откройте проект C ++ в среде IDE, затем перетащите файл конфигурации в корень проекта C ++.
При появлении запроса выберите добавление файла конфигурации ко всем целям.
Вы закончили с настройкой задач в консоли Firebase. Продолжайте добавлять SDK Firebase C ++ ниже.
Шаг 5. Добавьте SDK Firebase C ++
Шаги в этом разделе - это пример того, как добавить поддерживаемые продукты Firebase в ваш проект Firebase C ++.
Загрузите Firebase C ++ SDK , затем распакуйте SDK в удобное место.
Пакет SDK Firebase C ++ не зависит от платформы, но он содержит библиотеки для конкретной платформы.
Добавить Firebase стручки из распакованной SDK.
Создайте подфайл, если у вас его еще нет:
cd your-app-directory
pod init
В свой 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'
Установите
.xcworkspace
, затем откройте файл.xcworkspace
в Xcode.pod install
open your-app.xcworkspace
Добавьте фреймворки Firebase из распакованного SDK.
Самый простой способ добавить эти фреймворки - обычно перетаскивать их из окна
Finder
прямо в панель Xcode Project Navigator (крайняя левая панель по умолчанию; или щелкнуть значок файла в верхнем левом углу Xcode).Добавьте фреймворк Firebase C ++
firebase.framework
, который необходим для использования любого продукта Firebase.Добавьте платформу для каждого продукта Firebase, который вы хотите использовать. Например, чтобы использовать Firebase Authentication, добавьте
firebase_auth.framework
.
Вернувшись в консоль Firebase, в рабочем процессе настройки нажмите Далее .
Если вы добавили 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.32.2' (обязательно) pod 'Firebase/Analytics', '6.32.2' |
Аналитика | (обязательно) firebase.framework firebase_analytics.framework pod 'Firebase/Analytics', '6.32.2' |
Аутентификация | (обязательно) firebase.framework firebase_auth.framework pod 'Firebase/Auth', '6.32.2' |
Cloud Firestore (альфа) | (обязательно) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'Firebase/Firestore', '6.32.2' pod 'Firebase/Auth', '6.32.2' |
Облачные функции | (обязательно) firebase.framework firebase_functions.framework pod 'Firebase/Functions', '6.32.2' |
Обмен сообщениями в облаке | (обязательно) firebase.framework firebase_messaging.framework (рекомендуется) firebase_analytics.framework pod 'Firebase/Messaging', '6.32.2' (рекомендуется) pod 'Firebase/Analytics', '6.32.2' |
Облачное хранилище | (обязательно) firebase.framework firebase_storage.framework pod 'Firebase/Storage', '6.32.2' |
Динамические ссылки | (обязательно) firebase.framework firebase_dynamic_links.framework (рекомендуется) firebase_analytics.framework pod 'Firebase/DynamicLinks', '6.32.2' (рекомендуется) pod 'Firebase/Analytics', '6.32.2' |
База данных в реальном времени | (обязательно) firebase.framework firebase_database.framework pod 'Firebase/Database', '6.32.2' |
Удаленная конфигурация | (обязательно) firebase.framework firebase_remote_config.framework (рекомендуется) firebase_analytics.framework pod 'Firebase/RemoteConfig', '6.32.2' (рекомендуется) pod 'Firebase/Analytics', '6.32.2' |
Дополнительная информация для мобильной настройки
Метод swizzling
В iOS для некоторых событий приложения (таких как открытие URL-адресов и получение уведомлений) требуется, чтобы ваш делегат приложения реализовал определенные методы. Например, для получения уведомления может потребоваться, чтобы делегат вашего приложения реализовал application:didReceiveRemoteNotification:
Поскольку у каждого приложения iOS есть собственный делегат приложения, Firebase использует swizzling методов , который позволяет заменять один метод другим, присоединять собственные обработчики в дополнение к тем, которые вы могли реализовать.
Библиотеки динамических ссылок и облачных сообщений должны присоединять обработчики к делегату приложения с помощью переключения методов. Если вы используете какой - либо из этих продуктов Firebase, во время загрузки, Firebase определит ваш AppDelegate
класс и Swizzle необходимые методы на него, сцепление обратного вызова существующей реализации метода.
Настройка рабочего процесса на рабочем столе ( бета )
Когда вы создаете игру, часто гораздо проще сначала протестировать ее на настольных платформах, а затем развернуть и протестировать на мобильных устройствах позже в процессе разработки. Для поддержки этого рабочего процесса мы предоставляем подмножество SDK Firebase C ++, которое может работать в Windows, macOS, Linux и из редактора C ++.
Для рабочих процессов рабочего стола вам необходимо выполнить следующее:
- Настройте свой проект C ++ для CMake.
- Создать проект Firebase
- Зарегистрируйте свое приложение (iOS или Android) в Firebase
- Добавьте файл конфигурации Firebase для мобильной платформы
Создайте настольную версию файла конфигурации 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, чтобы узнать больше о файлах конфигурации.
Добавьте SDK Firebase в свой проект C ++.
Приведенные ниже шаги служат примером того, как добавить любой поддерживаемый продукт Firebase в ваш проект C ++. В этом примере мы рассмотрим добавление Firebase Authentication и Firebase Realtime Database.
Задайте в
FIREBASE_CPP_SDK_DIR
средыFIREBASE_CPP_SDK_DIR
расположение распакованного Firebase C ++ SDK.В файл
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}")
Запустите ваше приложение 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
.
Следующие шаги
Ознакомьтесь с примерами приложений Firebase .
Изучите SDK с открытым исходным кодом на GitHub .
Подготовьтесь к запуску вашего приложения:
- Настройте оповещения о бюджете для своего проекта в консоли Google Cloud.
- Следите за своей панелью использования и выставления счетов в консоли Firebase.
- Ознакомьтесь с контрольным списком запуска Firebase .