Google стремится продвигать расовую справедливость для черных сообществ. Смотри как.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

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

Включите ваши игры Unity с нашими Firebase Unity SDK.

Чтобы показать, как легко подключить Firebase к вашему проекту Unity, мы создали образец игры MechaHamster, которую вы можете загрузить из GitHub , App Store и Google Play Store .

MechaHamster (GitHub)

MechaHamster (магазин приложений)

MechaHamster (магазин Play)


Узнайте больше информации о включении игр в Firebase на нашей странице игр Firebase .

Уже добавили Firebase в свой проект Unity? Убедитесь, что вы используете последнюю версию Firebase Unity SDK .

Предпосылки

  • Установите Unity 5.3 или более позднюю версию.

  • (только для iOS) Установите следующее:

    • Xcode 9.4.1 или новее
    • CocoaPods 1.4.0 или позже
  • Убедитесь, что ваш проект Unity отвечает этим требованиям:

    • Для iOS - предназначается для iOS 8 или позже
    • Для Android - целевой уровень API 16 (Jelly Bean) или новее
  • Настройте физическое устройство или используйте эмулятор для запуска вашего приложения.

    • Для iOS - настройте физическое устройство iOS или используйте симулятор iOS.

    • Для Android - эмуляторы должны использовать изображение эмулятора с Google Play.

Если у вас еще нет проекта Unity и вы просто хотите попробовать продукт Firebase, вы можете скачать один из наших примеров быстрого запуска .

Шаг 1 : Создать проект Firebase

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

Шаг 2. Зарегистрируйте свое приложение в Firebase

Вы можете зарегистрировать одно или несколько приложений или игр для подключения к вашему проекту Firebase.

  1. Перейти к консоли Firebase .

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

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

  3. Выберите, какую цель сборки вашего проекта Unity вы хотите зарегистрировать, или вы можете даже выбрать, чтобы зарегистрировать обе цели сейчас одновременно.

  4. Введите идентификаторы для вашей платформы Unity.

    • Для iOS - введите идентификатор iOS вашего проекта Unity в поле идентификатора пакета iOS .

    • Для Android - введите идентификатор Android вашего проекта Unity в поле имени пакета Android .
      Термины имя пакета и идентификатор приложения часто используются взаимозаменяемо.

  5. (Необязательно) Введите псевдоним (ы) для вашего проекта Unity.
    Эти псевдонимы являются внутренними, удобными идентификаторами и видны только вам в консоли Firebase.

  6. Нажмите Зарегистрировать приложение .

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

  1. Получите ваши файлы конфигурации Firebase для конкретной платформы в рабочем процессе настройки консоли Firebase.

    • Для iOS - нажмите Скачать GoogleService-Info.plist .

    • Для Android - нажмите Скачать google-services.json .

  2. Откройте окно Project вашего проекта Unity, затем переместите ваши конфигурационные файлы в папку Assets .

  3. Вернувшись в консоль Firebase, в рабочем процессе установки нажмите Далее .

Шаг 4 : Добавьте Firebase Unity SDK

Вы можете добавить поддерживаемые продукты Firebase в свой проект Unity с помощью диспетчера пакетов Unity или установить SDK вручную.

Диспетчер пакетов Unity

Если вы используете Unity 2018.4 или новее и .NET 4.x или .NET Standard 2.0, вы можете установить компоненты Firebase SDK с помощью диспетчера пакетов Unity:

  1. Добавьте реестр игровых пакетов от Google в свой проект Unity.

    • Если вы никогда ранее не импортировали Firebase SDK и EDM4U (формально называются Play Services Resolver), вы можете вручную добавить следующий блок в Packages/manifest.json .

       "scopedRegistries": [
        {
          "name": "Game Package Registry by Google",
          "url": "https://unityregistry-pa.googleapis.com",
          "scopes": [
            "com.google"
          ]
        }
      ]
       

      Обратите внимание, что некоторые другие SDK, такие как Facebook SDK, могут содержать EDM4U в своем .unitypackage . Проверьте, существуют ли папки Assets/ExternalDependencyManager или Assets/PlayServicesResolver . Если эти папки существуют, удалите их перед установкой любого Firebase SDK через диспетчер пакетов Unity.

    • Если вам нужно перенести существующий SDK или выбрать более интерактивный метод, импортируйте последнюю версию External Dependency Manager for Unity (EDM4U) .

      Решение Unity Package Manager Resolver предложит вам добавить реестр игровых пакетов от Google к вашему проекту. Выберите реестр и нажмите кнопку « Добавить выбранные реестры» .

      • EDM4U добавляет реестр в Packages/manifest.json в вашей текущей папке проекта Unity.

      • Вы также можете вручную добавить этот реестр позже, используя Активы > Диспетчер внешних зависимостей > Resolver Диспетчер пакетов Unity > Добавить реестры или Окно > Google > Реестр игровых пакетов > Параметры меню Добавить в проект .

  2. Выполните миграцию из пакетов Firebase и EDM4U, импортированных через .unitypackage в диспетчер пакетов Unity. Это можно сделать одним из следующих способов.

    • После добавления реестра EDM4U должно появиться диалоговое окно «Перенос пакетов». В этом диалоговом окне перечислены все пакеты, доступные для установки через диспетчер пакетов Unity. Мы рекомендуем выбрать все из них и нажать кнопку « Применить» .

    • Вы также можете вручную открыть это диалоговое окно, используя пункты меню « Активы» > « Внешний менеджер зависимостей» > « Разрешитель диспетчера пакетов Unity» > « Перенос пакетов» .

    • Вы также можете вручную перенести все пакеты, импортированные через .unitypackage следующие действия.

      1. Удалить как Unity SDK Firebase и EDM4U из вашей Assets папки. EDM4U предоставляет инструмент для удаления управляемых пакетов, который доступен с помощью пункта меню « Активы» > « Внешний менеджер зависимостей» > « Обработчик версий» > « Удалить управляемые пакеты» . Выберите все Firebase SDK, а также External Dependency Manager и нажмите « Удалить выбранные пакеты» .

        • В качестве альтернативы вы также можете удалить SDK вручную из папки Assets .
      2. Установите компоненты Firebase Unity SDK с помощью диспетчера пакетов Unity, выбрав « Окно» > « Диспетчер пакетов» и Firebase поиск Firebase . Компоненты Firebase Unity SDK можно устанавливать, обновлять и удалять через этот интерфейс.

  3. Теперь вы можете изучить и установить любые компоненты Firebase Unity SDK или пакеты Google с помощью диспетчера пакетов Unity, выбрав « Окно» > « Диспетчер пакетов» . Все эти компоненты могут быть установлены, обновлены и удалены через этот интерфейс.

Ручная установка

  1. В консоли Firebase нажмите « Загрузить Firebase Unity SDK» , а затем разархивируйте SDK куда угодно.

    • Вы можете скачать Firebase Unity SDK снова в любое время.

    • Firebase Unity SDK не зависит от платформы.

  2. В вашем открытом проекте Unity перейдите к Активам > Пакет импорта > Пользовательский пакет .

  3. В разархивированном 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

  4. В окне « Импорт пакета Unity» нажмите « Импорт» .

  5. Вернувшись в консоль 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 SDK Firebase Unity.

Если вы импортируете плагин Firebase, который несовместим с версией .NET, включенной в вашем проекте, вы увидите ошибки компиляции некоторых типов в .NET Framework, реализованные с помощью Parse SDK.

Чтобы устранить ошибку компиляции, если вы используете .NET 3.x:

  1. Удалите или отключите следующие библиотеки DLL для всех платформ:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Включите следующие библиотеки DLL для всех платформ:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Чтобы устранить ошибку компиляции, если вы используете .NET 4.x:

  1. Удалите или отключите следующие библиотеки DLL для всех платформ:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Включите следующие библиотеки DLL для всех платформ:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Если вы импортируете другой плагин Firebase:

  • В вашем проекте Unity перейдите к Активы > Play Services Resolver > Обработчик версий > Обновление, чтобы включить правильные библиотеки 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 и более поздних версиях предусмотрены библиотеки пересылки типов, которые пересылают типы разбора (например, реализацию разбора System.Threading.Tasks.Task ) в среду .NET. К сожалению, IL2CPP (транспортер, преобразующий C # в C ++), поставляемый в Unity 2017.1.x, неправильно обрабатывает библиотеки пересылки типов, что приводит к ошибкам сборки, которые выглядят следующим образом:

 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.

Отсутствует файл конфигурации Firebase для Android в Unity 2020.

Для поддержки версий Unity, которые не имеют возможности настраивать сборку Gradle, инструмент редактора Firebase генерирует Assets/Plugins/Android/Firebase/res/values/google-services.xml в качестве ресурса Android для упаковки в Сборка Android, так что Firebase SDK может использовать его для инициализации стандартного экземпляра FirebaseApp.

Функциональность включения настраиваемого файла ресурсов в Unity 2020 нарушена или изменена. В результате приложение не сможет создать экземпляр по умолчанию.

Обходной путь для этого - вручную добавить ресурс в mainTemplate.gradle .

  1. Откройте настройки игрока в Unity, которые обычно можно найти в Edit> Параметры проекта ...> Игрок меню опций.
  2. Найдите параметр Custom Main Gradle Template разделе « Параметры публикации» и убедитесь, что он отмечен.
  3. Откройте Assets/Plugins/Android/mainTemplate.gradle с помощью текстового редактора.
  4. Добавьте следующий блок в mainTemplate.gradle .

     android {
        sourceSets {
            main {
                def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
                res.srcDirs += (unityProjectPath +  '/Assets/Plugins/Android/Firebase/res/values/google-services.xml')
            }
        }
    }
     

Конфликт установки при использовании диспетчера пакетов Unity

Пакет может быть установлен из разных источников. Например, External Dependency Manager для Unity (короче EDM4U, ранее назывался Play Services Resolver или Unity Jar Resolver) можно установить любым из следующих способов.

  • Импорт менеджера внешних зависимостей .unitypackage .
  • Импортировать Firebase SDK или другой SDK, который содержит EDM4U в своем .unitypackage .
  • Установка внешнего диспетчера зависимостей через диспетчер пакетов Unity
  • Установка Firebase SDK или другого SDK, который устанавливает EDM4U в качестве своей зависимости через диспетчер пакетов Unity .

Когда EDM4U (или Firebase) устанавливается через .unitypackage и через диспетчер пакетов Unity одновременно, возникает конфликт установки, и Unity может отображать ошибку о конфликте GUID или конфликте символов. EDM4U в настоящее время не предлагает разрешение для таких ситуаций. Когда это происходит, вот обходной путь:

  • Если вы ранее перенесли Firebase и EDM4U в диспетчер пакетов Unity и импортировали другой SDK, содержащий EDM4U в .unitypackage , например, Google Ads или Facebook SDK, вы можете просто удалить папки Assets/ExternalDependencyManager и / или Assets/PlayServicesResolver .
  • Если вы случайно установили EDM4U через Unity Package Manager перед удалением его из Assets папки первого, используйте следующие шаги для разрешения конфликта:
    1. Удалите папки Assets/ExternalDependencyManager и / или Assets/PlayServicesResolver .
    2. Удалите все пакеты Firebase и EDM4U из диспетчера пакетов Unity
    3. Переустановите все необходимые пакеты Firebase и EDM4U из UPM.

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

Когда вы создаете игру, зачастую гораздо проще протестировать ее в редакторе Unity и сначала на настольных платформах, а затем развернуть и протестировать на мобильных устройствах позже в процессе разработки. Для поддержки этого рабочего процесса мы предоставляем подмножество Firebase Unity SDK, которые могут работать в Windows, macOS, Linux и из редактора Unity.

  1. Настройте проект Unity для настольной платформы, следуя тем же инструкциям, что и для мобильной платформы (начните с шага Зарегистрируйте свое приложение в Firebase выше).

  2. Запустите свой проект Unity в Unity IDE или выберите, чтобы создать проект Unity для настольных компьютеров .

  3. (Необязательно) Запустите ваш проект Unity в режиме редактирования.

    Firebase Unity SDK также можно запускать в режиме редактирования Unity, что позволяет использовать его в плагинах редактора.

    1. Когда вы создаете FirebaseApp используемый редактором, не используйте экземпляр по умолчанию.

    2. Вместо этого предоставьте уникальное имя для вызова FirebaseApp.Create() .

      Это важно, чтобы избежать конфликта параметров между экземпляром, используемым в Unity IDE, и экземпляром, используемым вашим проектом Unity.

Поддерживаемые продукты Firebase

Узнайте больше о библиотеках Unity Firebase в справочной документации .

Firebase Unity SDK поддерживает следующие продукты 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. Следовательно, вам не нужно условно компилировать код для таргетинга на рабочий стол.

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