Добавьте Firebase в свой проект Unity
Улучшите свои игры на Unity с помощью наших SDK Firebase Unity.
Чтобы показать, насколько легко подключить Firebase к вашему проекту Unity, мы сделали образец игры MechaHamster, который вы можете загрузить из GitHub , App Store и Google Play Store .
MechaHamster (Магазин приложений)
Узнайте больше о том, как включить в свои игры Firebase, на нашей странице игр Firebase .
Уже добавили Firebase в свой проект Unity? Убедитесь, что вы используете последнюю версию Firebase Unity SDK .
Предпосылки
Установите Unity 2017.4 или новее. Более ранние версии также могут быть совместимы, но не будут активно поддерживаться.
(Только для iOS) Установите следующее:
- Xcode 9.4.1 или новее
- CocoaPods 1.9.0 или новее
Убедитесь, что ваш проект Unity соответствует этим требованиям:
- Для iOS - ориентирована на iOS 10 или новее.
- Для Android - целевой уровень API 16 (Jelly Bean) или новее.
Настройте физическое устройство или используйте эмулятор для запуска приложения.
Для iOS - настройте физическое устройство iOS или используйте симулятор iOS.
Для облачного обмена сообщениями на iOS выполните следующие действия:
- Настройте физическое устройство iOS .
- Получите ключ аутентификации Apple Push Notification для своей учетной записи Apple Developer .
- Включите push-уведомления в XCode в разделе « Приложение»> «Возможности» .
Для Android - эмуляторы должны использовать образ эмулятора с Google Play.
- Войдите в Firebase, используя свою учетную запись Google.
Если у вас еще нет проекта Unity и вы просто хотите опробовать продукт Firebase, вы можете загрузить один из наших образцов быстрого запуска .
Шаг 1. Создайте проект Firebase
Прежде чем вы сможете добавить Firebase в свой проект Unity, вам необходимо создать проект Firebase для подключения к вашему проекту Unity. Посетите Understand Firebase Projects, чтобы узнать больше о проектах Firebase.
Шаг 2. Зарегистрируйте приложение в Firebase
Вы можете зарегистрировать одно или несколько приложений или игр для подключения к своему проекту Firebase.
Перейдите в консоль Firebase .
В центре страницы обзора проекта щелкните значок Unity (
), чтобы запустить рабочий процесс установки.Если вы уже добавили приложение в свой проект Firebase, нажмите « Добавить приложение», чтобы отобразить параметры платформы.
Выберите цель сборки вашего проекта Unity, которую вы хотите зарегистрировать, или вы даже можете зарегистрировать обе цели одновременно.
Введите идентификаторы платформы вашего проекта Unity.
Для iOS: введите идентификатор iOS вашего проекта Unity в поле идентификатора пакета iOS .
Для Android: введите идентификатор Android вашего проекта Unity в поле имени пакета Android .
Термины имя пакета и идентификатор приложения часто используются как синонимы.
Откройте свой проект Unity в своей Unity IDE, затем перейдите в раздел настроек для каждой платформы:
Для iOS - перейдите в Настройки сборки> iOS .
Для Android: перейдите в Android> Настройки проигрывателя> Другие настройки .
Идентификатор вашего проекта Unity - это значение идентификатора
com.yourcompany.yourproject
(например, идентификатор:com.yourcompany.yourproject
).(Необязательно) Введите псевдонимы для платформы вашего проекта Unity.
Эти псевдонимы являются внутренними удобными идентификаторами и видны только вам в консоли Firebase.Щелкните Зарегистрировать приложение .
Шаг 3. Добавьте файлы конфигурации Firebase
Получите файлы конфигурации Firebase для конкретной платформы в рабочем процессе настройки консоли Firebase.
Для iOS: нажмите Загрузить GoogleService-Info.plist .
Для Android: нажмите Загрузить google-services.json .
Файл конфигурации Firebase содержит уникальные, но не секретные идентификаторы вашего проекта. Чтобы узнать больше об этом файле конфигурации, посетите Understand Firebase Projects .
Вы можете повторно загрузить файл конфигурации Firebase в любое время.
Убедитесь, что к имени файла конфигурации не добавлены дополнительные символы, например
(2)
.
Откройте окно Project вашего проекта Unity, затем переместите файлы конфигурации в папку
Assets
.Вернувшись в консоль Firebase, в рабочем процессе настройки нажмите Далее .
Шаг 4. Добавьте SDK Firebase Unity
В консоли Firebase нажмите Загрузить Firebase Unity SDK , затем распакуйте SDK в удобное место.
Вы можете снова загрузить Firebase Unity SDK в любое время.
SDK Firebase Unity не зависит от платформы.
В открытом проекте Unity перейдите к Assets > Import Package > Custom Package .
В разархивированном SDK выберите поддерживаемые продукты Firebase, которые вы хотите использовать в своем приложении.
Аналитика включена
- Добавьте пакет Firebase для Google Analytics:
FirebaseAnalytics.unitypackage
- Добавьте пакеты для любых других продуктов Firebase, которые вы хотите использовать в своем приложении. Например, чтобы использовать Firebase Authentication и Firebase Realtime Database:
FirebaseAuth.unitypackage
иFirebaseDatabase.unitypackage
Аналитика не включена
Добавьте пакеты для продуктов Firebase, которые вы хотите использовать в своем приложении. Например, чтобы использовать Firebase Authentication и Firebase Realtime Database:
FirebaseAuth.unitypackage
иFirebaseDatabase.unitypackage
- Добавьте пакет Firebase для Google Analytics:
В окне " Импорт пакета Unity" нажмите " Импорт" .
Вернувшись в консоль Firebase, в рабочем процессе настройки нажмите Далее .
Шаг 5. Подтвердите требования к версии сервисов Google Play
Для Firebase Unity SDK для Android требуются сервисы Google Play , которые должны быть обновлены до того, как SDK можно будет использовать.
Добавьте следующий код в начало вашего приложения. Вы можете проверить и при необходимости обновить сервисы Google Play до версии, которая требуется для Firebase Unity SDK, перед вызовом любых других методов в SDK.
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => { var dependencyStatus = task.Result; if (dependencyStatus == Firebase.DependencyStatus.Available) { // Create and hold a reference to your FirebaseApp, // where app is a Firebase.FirebaseApp property of your application class. app = Firebase.FirebaseApp.DefaultInstance; // Set a flag here to indicate whether Firebase is ready to use by your app. } else { UnityEngine.Debug.LogError(System.String.Format( "Could not resolve all Firebase dependencies: {0}", dependencyStatus)); // Firebase Unity SDK is not safe to use here. } });
Все готово! Ваш проект Unity зарегистрирован и настроен для использования Firebase.
Известные вопросы
Совместимость с .NET при использовании Unity 2017.x и новее
Firebase поддерживает .NET 4.x в качестве экспериментального варианта сборки в Unity 2017 и новее. Плагины Firebase используют компоненты Parse SDK для предоставления некоторых классов .NET 4.x в более ранних версиях .NET.
Таким образом, Firebase Unity SDK версии 5.4.0
и выше предоставляет плагины, совместимые с .NET 3.x или .NET 4.x в dotnet3
и dotnet4
Firebase Unity SDK.
Если вы импортируете подключаемый модуль Firebase, несовместимый с версией .NET, включенной в вашем проекте, вы увидите ошибки компиляции некоторых типов в платформе .NET, которые реализуются Parse SDK.
Чтобы устранить ошибку компиляции, если вы используете .NET 3.x:
- Удалите или отключите следующие библиотеки DLL для всех платформ:
-
Parse/Plugins/dotNet45/Unity.Compat.dll
-
Parse/Plugins/dotNet45/Unity.Tasks.dll
-
- Включите следующие библиотеки DLL для всех платформ:
-
Parse/Plugins/Unity.Compat.dll
-
Parse/Plugins/Unity.Tasks.dll
-
Чтобы устранить ошибку компиляции, если вы используете .NET 4.x:
- Удалите или отключите следующие библиотеки DLL для всех платформ:
-
Parse/Plugins/Unity.Compat.dll
-
Parse/Plugins/Unity.Tasks.dll
-
- Включите следующие библиотеки DLL для всех платформ:
-
Parse/Plugins/dotNet45/Unity.Compat.dll
-
Parse/Plugins/dotNet45/Unity.Tasks.dll
-
Если вы импортируете другой плагин Firebase:
- В своем проекте Unity перейдите к Assets > Play Services Resolver > Version Handler > Update, чтобы включить правильные библиотеки DLL для вашего проекта.
Компиляция Unity 2017.1 IL2CPP в проектах .NET 4.x
Firebase поддерживает .NET 4.x в качестве экспериментального варианта сборки в Unity 2017 и новее. Плагины Firebase используют компоненты Parse SDK для предоставления некоторых классов .NET 4.x в более ранних версиях .NET.
Таким образом, Firebase Unity SDK версии 5.4.0 и более поздних версий предоставляет библиотеки DLL пересылки типов, которые пересылают типы анализа (например, реализация Parse System.Threading.Tasks.Task
) в платформу .NET. К сожалению, IL2CPP (транспилятор, конвертирующий C # в C ++), поставляемый в Unity 2017.1.x, неправильно обрабатывает библиотеки DLL пересылки типов, что приводит к ошибкам сборки, которые похожи на следующие:
Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>
В настоящее время не существует обходного пути для ошибок сборки .NET 4.x IL2CPP в Unity 2017.1, поэтому необходимо выполнить обновление до Unity 2017.2 или более поздней версии, чтобы использовать .NET 4.x в проектах, скомпилированных с помощью IL2CPP.
Unity 2017.2 сети
База данных Firebase Realtime создает сетевые соединения TLS с использованием сетевого стека .NET. Функциональность TLS нарушена в Unity 2017.2 при использовании .NET 4.6, что приводит к сбою подключаемого модуля Realtime Database в редакторах и на рабочем столе.
Для этой проблемы нет решения, поэтому вы должны использовать другую версию Unity, например версию 2017.1 или 2017.3.
В Unity 2020 отсутствует файл конфигурации Firebase Android.
Для поддержки версий Unity, в которых нет возможности настраивать сборку Gradle, инструмент редактора Firebase создает Assets/Plugins/Android/Firebase/res/values/google-services.xml
как ресурс Android, который будет упакован в Сборка Android, чтобы Firebase SDK мог использовать ее для инициализации экземпляра FirebaseApp по умолчанию.
В Unity 2020 все ресурсы Android должны находиться в каталогах с суффиксом .androidlib
. Если в вашем проекте используется Firebase SDK, который создает каталог Assets/Plugins/Android/Firebase
, переименуйте его в Assets/Plugins/Android/Firebase.androidlib
. Убедитесь, что он содержит AndroidManifest.xml
, project.properties
и res/values/google-services.xml
.
Проблема с single dex при создании приложения для Android
При создании приложения для Android вы можете столкнуться с ошибкой сборки, связанной с одним файлом dex. Сообщение об ошибке выглядит примерно так, если ваш проект настроен на использование системы сборки Gradle.
Cannot fit requested classes in a single dex file.
Исполняемые файлы Dalvik ( .dex
) используются для хранения набора определений классов и связанных с ними дополнительных данных для приложений Android ( .apk
). Один файл dex ограничен ссылкой на 65 536 методов. Сборка завершится ошибкой, если общее количество методов из всех библиотек Android в вашем проекте превысит этот предел.
Unity представил минификацию в 2017.2, который использует Proguard (или другие инструменты , в некоторых версиях Unity) , чтобы вырезать неиспользуемый код, который может уменьшить общее количество ссылочных методов в одном файле DEX. Эту опцию можно найти в Настройках проигрывателя> Android> Настройки публикации> Свернуть . Параметры могут отличаться в разных версиях Unity, поэтому обратитесь к официальной документации Unity.
Если количество ссылочных методов все еще превышает лимит, другой вариант - включить multidex
. В Unity есть несколько способов добиться этого:
- Если в
Player Settings
включенCustom Gradle Template
, изменитеmainTemplate.gradle
. - Если вы используете Android Studio для сборки экспортированного проекта, измените файл
build.gradle
уровнеbuild.gradle
.
Более подробную информацию можно найти в руководстве пользователя multidex .
Настройка рабочего процесса на рабочем столе ( бета )
Когда вы создаете игру, часто намного проще сначала протестировать ее в редакторе Unity и на настольных платформах, а затем развернуть и протестировать на мобильных устройствах позже в процессе разработки. Для поддержки этого рабочего процесса мы предоставляем подмножество SDK Firebase Unity, которые могут работать в Windows, macOS, Linux и из редактора Unity.
Настройте проект Unity для настольной платформы, следуя тем же инструкциям, что и для мобильной платформы (начните с шага « Зарегистрируйте свое приложение в Firebase» выше).
Запустите свой проект Unity в среде Unity IDE или выберите сборку проекта Unity для настольного компьютера .
(Необязательно) Запустите проект Unity в режиме редактирования.
SDK Firebase Unity также можно запустить в режиме редактирования Unity, что позволяет использовать его в надстройках редактора.
Когда вы создаете приложение
FirebaseApp
используемое редактором, не используйте экземпляр по умолчанию.Вместо этого укажите уникальное имя для вызова
FirebaseApp.Create()
.Это важно, чтобы избежать конфликта в параметрах между экземпляром, используемым Unity IDE, и экземпляром, используемым вашим проектом Unity.
Поддерживаемые продукты Firebase
Узнайте больше о библиотеках Unity Firebase в справочной документации .
SDK Firebase Unity поддерживает следующие продукты Firebase на iOS и Android :
Продукт Firebase | Пакет Unity |
---|---|
AdMob | Распространяется отдельно в подключаемом модуле AdMob Unity |
Аналитика | FirebaseAnalytics.unitypackage |
Аутентификация | FirebaseAuth.unitypackage |
Cloud Firestore (бета) | FirebaseFirestore.unitypackage |
Облачные функции | FirebaseFunctions.unitypackage |
Обмен сообщениями в облаке | FirebaseMessaging.unitypackage (рекомендуется) FirebaseAnalytics.unitypackage |
Облачное хранилище | FirebaseStorage.unitypackage |
Crashlytics | FirebaseCrashlytics.unitypackage (рекомендуется) FirebaseAnalytics.unitypackage |
Динамические ссылки | FirebaseDynamicLinks.unitypackage (рекомендуется) FirebaseAnalytics.unitypackage |
База данных в реальном времени | FirebaseDatabase.unitypackage |
Удаленная конфигурация | FirebaseRemoteConfig.unitypackage (рекомендуется) FirebaseAnalytics.unitypackage |
Поддерживаемые продукты Firebase (для ПК)
Firebase Unity SDK включает поддержку рабочего процесса рабочего стола для подмножества продуктов, что позволяет использовать определенные части Firebase в редакторе Unity и в автономных сборках рабочего стола в Windows, macOS и Linux.
Продукт Firebase (для ПК) | Пакет Unity |
---|---|
Аутентификация | FirebaseAuth.unitypackage |
Облачные функции | FirebaseFunctions.unitypackage |
Cloud Firestore | FirebaseFirestore.unitypackage |
Облачное хранилище | FirebaseStorage.unitypackage |
База данных в реальном времени | FirebaseDatabase.unitypackage |
Удаленная конфигурация | FirebaseRemoteConfig.unitypackage |
Firebase предоставляет оставшиеся библиотеки рабочего стола в виде заглушек (нефункциональных) для удобства при сборке для Windows, macOS и Linux. Следовательно, вам не нужно условно компилировать код для рабочего стола.
Следующие шаги
Ознакомьтесь с примерами приложений Firebase .
Подготовьтесь к запуску вашего приложения:
- Настройте оповещения о бюджете для своего проекта в Google Cloud Console.
- Следите за своей панелью использования и выставления счетов в консоли Firebase.
- Ознакомьтесь с контрольным списком запуска Firebase .