Усильте свои игры на C++ с помощью наших SDK Firebase C++, которые предоставляют интерфейс C++ поверх Firebase SDK.
Получите доступ к Firebase полностью из своего кода C++, без необходимости писать собственный код платформы. Firebase SDK также переводит многие языковые идиомы, используемые Firebase, в интерфейс, более знакомый разработчикам C++.
Узнайте больше о том, как улучшить свои игры с помощью Firebase, на нашей странице игр Firebase .
Уже добавили Firebase в свой проект C++? Убедитесь, что вы используете последнюю версию Firebase C++ SDK .
Предпосылки
Установите следующее:
- Xcode 13.3.1 или новее
- CocoaPods 1.10.0 или новее
Убедитесь, что ваш проект ориентирован на следующие версии платформы или более поздние версии:
- iOS 11
- твОС 12
Настройте физическое устройство или используйте симулятор для запуска приложения.
Предварительные требования для Cloud Messaging на платформах Apple:
- Настройте физическое устройство Apple .
- Получите ключ аутентификации Apple Push Notification для своей учетной записи Apple Developer .
- Включите push-уведомления в Xcode в разделе «Приложение» > «Возможности» .
Войдите в Firebase , используя свою учетную запись Google.
Шаг 2. Создайте проект Firebase.
Прежде чем вы сможете добавить Firebase в свой проект C++, вам необходимо создать проект Firebase для подключения к вашему проекту C++. Посетите страницу Understand Firebase Projects , чтобы узнать больше о проектах Firebase.
Шаг 3. Зарегистрируйте свое приложение в Firebase.
Чтобы использовать Firebase в своем приложении Apple, вам необходимо зарегистрировать свое приложение в проекте Firebase. Регистрация вашего приложения часто называется «добавлением» вашего приложения в ваш проект.
Перейдите в консоль Firebase .
В центре страницы обзора проекта щелкните значок iOS+ , чтобы запустить рабочий процесс установки.
Если вы уже добавили приложение в свой проект Firebase, нажмите «Добавить приложение» , чтобы отобразить параметры платформы.
Введите идентификатор пакета вашего приложения в поле идентификатора пакета .
Идентификатор пакета однозначно идентифицирует приложение в экосистеме Apple.
Найдите свой идентификатор пакета: откройте свой проект в Xcode, выберите приложение верхнего уровня в навигаторе проекта, затем выберите вкладку «Общие» .
Значением поля Bundle Identifier является идентификатор пакета (например,
com.yourcompany.yourproject
).Имейте в виду, что значение идентификатора пакета чувствительно к регистру, и его нельзя изменить для этого приложения Firebase после его регистрации в вашем проекте Firebase.
(Необязательно) Введите другую информацию о приложении: псевдоним приложения и идентификатор App Store .
Псевдоним приложения . Внутренний удобный идентификатор, который виден только вам в консоли Firebase.
Идентификатор App Store : используется Firebase Dynamic Links для перенаправления пользователей на вашу страницу в App Store и Google Analytics для импорта событий конверсии в Google Ads . Если у вашего приложения еще нет идентификатора App Store, вы можете добавить его позже в настройках проекта .
Щелкните Зарегистрировать приложение .
Шаг 4. Добавьте файл конфигурации Firebase.
Нажмите Загрузить GoogleService-Info.plist , чтобы получить файл конфигурации Firebase для платформ Apple.
Файл конфигурации 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
В свой подфайл добавьте модули Firebase, которые вы хотите использовать в своем приложении.
Аналитика включена
# Add the Firebase pod for Google Analytics pod 'FirebaseAnalytics'
# 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 'FirebaseAuth' pod 'FirebaseDatabase'Аналитика не включена
# 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 'FirebaseAuth' pod 'FirebaseDatabase'
Установите модули, затем откройте файл
.xcworkspace
в Xcode.pod install
open your-app.xcworkspace
Добавьте фреймворки Firebase из разархивированного SDK.
Самый простой способ добавить эти фреймворки — обычно перетаскивать их из окна
Finder
прямо в панель Project Navigator Xcode (крайняя левая панель по умолчанию; или щелкнуть значок файла в верхнем левом углу Xcode).Добавьте фреймворк Firebase C++
firebase.framework
, необходимый для использования любого продукта Firebase.Добавьте платформу для каждого продукта Firebase, который вы хотите использовать. Например, чтобы использовать аутентификацию Firebase, добавьте
firebase_auth.framework
.
Вернувшись в консоль Firebase, в рабочем процессе настройки нажмите «Далее» .
Если вы добавили Analytics, запустите свое приложение, чтобы отправить в Firebase подтверждение того, что вы успешно интегрировали Firebase. В противном случае вы можете пропустить этот шаг проверки.
В журналах вашего устройства будет отображаться подтверждение Firebase о завершении инициализации. Если вы запустили свое приложение на эмуляторе с доступом к сети, консоль Firebase уведомит вас о завершении подключения вашего приложения.
Готово! Ваше приложение C++ зарегистрировано и настроено для использования продуктов Firebase.
Доступные библиотеки
Узнайте больше о библиотеках C++ Firebase в справочной документации и в нашем выпуске SDK с открытым исходным кодом на GitHub .
Доступные библиотеки для платформ Apple
Обратите внимание, что библиотеки C++ для Android перечислены в версии для Android на этой странице установки .
Каждый продукт Firebase имеет разные зависимости. Обязательно добавьте все перечисленные зависимости для желаемого продукта Firebase в свой проект Podfile и C++.
Каждый продукт Firebase может поддерживать только некоторые платформы Apple OS (iOS, tvOS и т. д.). Узнайте, какие платформы поддерживаются каждой библиотекой, в разделе Дополнительные сведения о C++ и Firebase .
Продукт Firebase | Фреймворки и модули |
---|---|
AdMob | (обязательно) firebase.framework firebase_admob.framework (обязательно) firebase_analytics.framework pod 'FirebaseAdMob', '10.9.0' (обязательно) pod 'FirebaseAnalytics', '10.9.0' |
Аналитика | (обязательно) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '10.9.0' |
Проверка приложения | (обязательно) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '10.9.0' |
Аутентификация | (обязательно) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.9.0' |
Облако Firestore | (обязательно) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.9.0' pod 'FirebaseAuth', '10.9.0' |
Облачные функции | (обязательно) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.9.0' |
Облачный обмен сообщениями | (обязательно) firebase.framework firebase_messaging.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseMessaging', '10.9.0' (рекомендуется) pod 'FirebaseAnalytics', '10.9.0' |
Облачное хранилище | (обязательно) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.9.0' |
Динамические ссылки | (обязательно) firebase.framework firebase_dynamic_links.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.9.0' (рекомендуется) pod 'FirebaseAnalytics', '10.9.0' |
База данных реального времени | (обязательно) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.9.0' |
Удаленная конфигурация | (обязательно) firebase.framework firebase_remote_config.framework (рекомендуется) firebase_analytics.framework pod 'FirebaseRemoteConfig', '10.9.0' (рекомендуется) pod 'FirebaseAnalytics', '10.9.0' |
Дополнительная информация для мобильной настройки
Метод swizzling
В iOS некоторые события приложения (например, открытие URL-адресов и получение уведомлений) требуют, чтобы ваш делегат приложения реализовал определенные методы. Например, для получения уведомления может потребоваться, чтобы ваш делегат приложения реализовал application:didReceiveRemoteNotification:
. Поскольку у каждого приложения iOS есть свой собственный делегат приложения, Firebase использует метод swizzling , который позволяет заменять один метод другим, чтобы прикреплять свои собственные обработчики в дополнение к тем, которые вы могли реализовать.
Библиотеки Dynamic Links и Cloud Messaging должны прикреплять обработчики к делегату приложения, используя метод swizzling. Если вы используете какой-либо из этих продуктов Firebase, во время загрузки Firebase идентифицирует ваш класс AppDelegate
и включит в него необходимые методы, связывая обратный вызов с существующей реализацией метода.
Настройка рабочего процесса на рабочем столе ( бета-версия )
Когда вы создаете игру, часто гораздо проще сначала протестировать ее на настольных платформах, а затем развертывать и тестировать на мобильных устройствах позже в процессе разработки. Для поддержки этого рабочего процесса мы предоставляем подмножество 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 , чтобы узнать больше о файлах конфигурации.
Добавьте Firebase SDK в свой проект C++.
Приведенные ниже шаги служат примером того, как добавить любой поддерживаемый продукт Firebase в ваш проект C++. В этом примере мы рассмотрим добавление аутентификации Firebase и базы данных Firebase Realtime.
Задайте для переменной среды
FIREBASE_CPP_SDK_DIR
расположение разархивированного SDK Firebase C++.В файл
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++.
Доступные библиотеки (рабочий стол)
Firebase C++ SDK включает в себя поддержку рабочего процесса рабочего стола для подмножества функций, что позволяет использовать определенные части Firebase в автономных сборках рабочего стола в Windows, macOS и Linux.
Продукт Firebase | Ссылки на библиотеки (с использованием CMake) |
---|---|
Проверка приложения | firebase_app_check (обязательно) firebase_app |
Аутентификация | 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 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 |
Облако 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 13.3.1.
При создании настольных приложений 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
.
Следующие шаги
Ознакомьтесь с примерами приложений Firebase .
Изучите SDK с открытым исходным кодом на GitHub .
Подготовьтесь к запуску вашего приложения:
- Настройте оповещения о бюджете для своего проекта в Google Cloud Console.
- Следите за панелью управления «Использование и выставление счетов» в консоли Firebase, чтобы получить общую картину использования вашего проекта в нескольких сервисах Firebase.
- Ознакомьтесь с контрольным списком запуска Firebase .