Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Agrega Firebase a tu proyecto de Unity

Mejora tus juegos de Unity con nuestros SDK de Firebase Unity.

Para demostrarte lo fácil que es integrar Firebase a tu proyecto de Unity, creamos “MechaHamster”, un juego de muestra que puedes descargar desde GitHub, App Store y Google Play Store.

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Play Store)


Obtén más información para mejorar tus juegos con Firebase en nuestra página de juegos de Firebase.

¿Ya agregaste Firebase a tu proyecto de Unity? Asegúrate de usar la versión más reciente del SDK de Firebase Unity.

Requisitos previos

  • Instala Unity 2017.4 o una versión más reciente. Las versiones anteriores pueden ser compatibles, pero no recibirán asistencia.

  • Instala lo siguiente (solo en iOS):

    • Xcode 9.4.1 o una versión más reciente
    • CocoaPods 1.10.0 o una versión más reciente
  • Asegúrate de que tu proyecto de Unity cumpla con estos requisitos:

    • iOS: Debe orientarse a iOS 10 o una versión más reciente.
    • Android: Debe orientarse al nivel de API 16 (Jelly Bean) o una versión más reciente.
  • Configura un dispositivo físico o usa un emulador para ejecutar tu app.

    • iOS: Configura un dispositivo iOS físico o usa el simulador de iOS.

    • Android: Los emuladores deben usar una imagen que cuente con Google Play.

Si solo quieres probar un producto de Firebase, pero aún no tienes un proyecto de Unity, puedes descargar una de estas muestras de inicio rápido.

Paso 1: Crea un proyecto de Firebase

Antes de que puedas agregar Firebase al proyecto de Unity, deberás crear un proyecto de Firebase para conectarlo con el de Unity. Consulta el artículo Información sobre los proyectos de Firebase para obtener detalles sobre el tema.

Paso 2: Registra tu app con Firebase

Puedes registrar una o más apps o juegos para conectarlos con el proyecto de Firebase.

  1. Dirígete a Firebase console.

  2. En el centro de la página de descripción general del proyecto, haz clic en el ícono de Unity () para iniciar el flujo de trabajo de configuración.

    Si ya agregaste una app a tu proyecto de Firebase, haz clic en Agregar app para que se muestren las opciones de plataforma.

  3. Selecciona qué destino de compilación del proyecto de Unity quieres registrar. Si quieres registrar ambos destinos a la vez, este es el momento de hacerlo.

  4. Ingresa el ID del proyecto de Unity específico de cada plataforma.

    • iOS: Ingresa el ID de iOS del proyecto de Unity en el campo ID del paquete de iOS.

    • Android: Ingresa el ID de Android del proyecto de Unity en el campo Nombre del paquete de Android.
      Por lo general, los términos ID de la aplicación y nombre del paquete se utilizan de manera intercambiable.

  5. Ingresa el sobrenombre específico de cada plataforma para el proyecto de Unity (opcional).
    Los sobrenombres son identificadores internos y convenientes que solo tú puedes ver en Firebase console.

  6. Haz clic en Registrar app.

Paso 3: Agrega los archivos de configuración de Firebase

  1. Usa el flujo de trabajo de configuración de Firebase console para obtener los archivos de configuración de Firebase específicos de las plataformas.

    • iOS: Haz clic en Download GoogleService-Info.plist.

    • Android: Haz clic en Download google-services.json.

  2. Abre la ventana Project del proyecto de Unity y transfiere los archivos de configuración a la carpeta Assets.

  3. Vuelve a Firebase console y, en el flujo de trabajo de configuración, haz clic en Siguiente.

Paso 4: Agrega los SDK de Firebase Unity

  1. En Firebase console, haz clic en Descargar el SDK de Firebase Unity y descomprímelo en el lugar que prefieras.

    • Puedes volver a descargar el SDK de Firebase Unity cuando quieras.

    • El SDK de Firebase Unity no es específico para cada plataforma.

  2. Abre tu proyecto de Unity, ve a Elementos > Importar paquete > Paquete personalizado.

  3. En el SDK descomprimido, selecciona los productos de Firebase admitidos que deseas usar en la app.

    Si Analytics está habilitado

    • Agrega el paquete de Firebase para Google Analytics: FirebaseAnalytics.unitypackage.
    • Agrega los paquetes de cualquier otro producto de Firebase que quieras usar en tu app. Por ejemplo, para usar Firebase Authentication y Firebase Realtime Database:
      FirebaseAuth.unitypackage y FirebaseDatabase.unitypackage

    Si Analytics está inhabilitado

    Agrega los paquetes de los productos de Firebase que deseas usar en tu app. Por ejemplo, para usar Firebase Authentication y Firebase Realtime Database:
    FirebaseAuth.unitypackage y FirebaseDatabase.unitypackage

  4. En la ventana Import Unity Package, haz clic en Import.

  5. Vuelve a Firebase console y, en el flujo de trabajo de configuración, haz clic en Siguiente.

Paso 5: Confirma los requisitos de la versión de los Servicios de Google Play

El SDK de Firebase Unity en Android requiere los Servicios de Google Play actualizados para poder usarlo.

Se debe agregar el siguiente código al inicio de la aplicación. Puedes buscar los Servicios de Google Play y, de forma opcional, actualizarlos a la versión que requiera el SDK de Firebase Unity. De esta manera, es posible llamar a otros métodos en el 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.
  }
});

Listo. El proyecto de Unity se registró y configuró para usar Firebase.

Problemas conocidos

Compatibilidad de .NET con Unity 2017.x y versiones posteriores

En Unity 2017 y versiones posteriores, Firebase admite .NET 4.x como opción de compilación experimental. Los complementos de Firebase usan componentes del SDK de Parse para proporcionar algunas clases de .NET 4.x en versiones anteriores de .NET.

Por lo tanto, el SDK de Firebase Unity 5.4.0 y versiones posteriores proporcionan complementos compatibles con .NET 3.x o .NET 4.x en sus directorios dotnet3 y dotnet4 del SDK de Firebase Unity.

Cuando importes un complemento de Firebase que no sea compatible con la versión de .NET habilitada en tu proyecto, verás errores de compilación de algunos tipos en .NET Framework que implementa el SDK de Parse.

Sigue estos pasos para solucionar el error de compilación si usas .NET 3.x:

  1. Quita o inhabilita los siguientes DLL para todas las plataformas:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Habilita los siguientes DLL para todas las plataformas:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Sigue estos pasos para solucionar el error de compilación si usas .NET 4.x:

  1. Quita o inhabilita los siguientes DLL para todas las plataformas:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Habilita los siguientes DLL para todas las plataformas:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Si importas otro complemento de Firebase, haz lo siguiente:

  • En el proyecto de Unity, navega hasta Assets > Play Services Resolver > Version Handler > Update a fin de habilitar los DLL correctos del proyecto.

Compilación Unity 2017.1 IL2CPP en proyectos .NET 4.x

En Unity 2017 y versiones posteriores, Firebase admite .NET 4.x como opción de compilación experimental. Los complementos de Firebase usan componentes del SDK de Parse para proporcionar algunas clases de .NET 4.x en versiones anteriores de .NET.

Por lo tanto, el SDK de Firebase Unity en su versión 5.4.0, y sus versiones posteriores, proporciona DLL de desvío que reenvían los tipos Parse (por ejemplo, implementación Parse de System.Threading.Tasks.Task) al framework de .NET. Lamentablemente, el IL2CPP (transpilador que convierte C# en C++) que incluye Unity 2017.1.x no procesa correctamente los DLL de desvío de tipos, lo que genera errores de compilación como el siguiente:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

Todavía no hay una solución alternativa para los errores de compilación de .NET 4.x IL2CPP en Unity 2017.1., por lo que debes actualizar a Unity 2017.2 o una versión posterior a fin de usar .NET 4.x en los proyectos compilados con IL2CPP.

Herramientas de redes de Unity 2017.2

Firebase Realtime Database crea conexiones de red TLS con la pila de herramientas de redes de .NET. La función TLS presenta errores en Unity 2017.2 cuando se usa .NET 4.6, lo que causa que el complemento de Realtime Database falle en editores y en computadoras de escritorio.

No hay una solución alternativa para este problema, por lo que debes usar una versión diferente de Unity, como 2017.1 o 2017.3.

Falta el archivo de configuración de Firebase para Android en Unity 2020

Con el fin de admitir las versiones de Unity que no tienen la capacidad de personalizar la compilación de Gradle, la herramienta del editor de Firebase genera Assets/Plugins/Android/Firebase/res/values/google-services.xml como un recurso de Android para empaquetarse en una compilación de Android; por lo tanto, el SDK de Firebase puede usarlo para inicializar la instancia predeterminada de FirebaseApp.

En Unity 2020, todos los recursos de Android deben estar en directorios con un sufijo .androidlib. Si el proyecto usa un SDK de Firebase que genera un directorio Assets/Plugins/Android/Firebase, cámbiale el nombre a Assets/Plugins/Android/Firebase.androidlib. Asegúrate de que contenga AndroidManifest.xml, project.properties y res/values/google-services.xml.

Problema relacionado con tener un solo archivo dex durante la compilación de apps para Android

Cuando compilas una app para Android, es posible que experimentes una falla de compilación relacionada con un archivo dex único. El mensaje de error es similar al siguiente, si el proyecto está configurado para usar el sistema de compilación de Gradle.

Cannot fit requested classes in a single dex file.

Los archivos Dalvik Executable (.dex) se usan para contener un conjunto de definiciones de clase y sus datos adjuntos asociados de aplicaciones para Android (.apk). Un solo archivo dex se limita a la referencia a 65,536 métodos. La compilación fallará si la cantidad total de métodos de todas las bibliotecas de Android de tu proyecto supera este límite.

Unity agregó la reducción en su versión 2017.2, que usa ProGuard (y otras herramientas en algunas versiones de Unity) para quitar el código que no se utiliza, lo que puede reducir la cantidad total de métodos de referencia en un solo archivo dex. Esta opción se encuentra en Player Settings > Android > Publishing Settings > Minify. Las opciones pueden variar en distintas versiones de Unity, así que consulta la documentación oficial de Unity.

Si la cantidad de métodos a los que se hace referencia aún excede el límite, otra opción es habilitar multidex. Hay muchas formas de lograrlo en Unity:

  • Si Custom Gradle Template en Player Settings está habilitado, modifica mainTemplate.gradle.
  • Si usas Android Studio para compilar el proyecto exportado, modifica el archivo build.gradle de nivel de módulo.

Puedes encontrar más información en la guía del usuario de multidex.

Configura un flujo de trabajo para computadoras de escritorio (versión Beta)

Cuando creas un juego, suele ser más fácil probarlo en el editor de Unity y en plataformas de escritorio antes de implementarlo y probarlo en dispositivos móviles en una etapa posterior del desarrollo. Para admitir este flujo de trabajo, proporcionamos un subconjunto de los SDK de Firebase Unity que se pueden ejecutar en Windows, macOS, Linux y desde el editor de Unity.

  1. Para configurar un proyecto de Unity en plataformas de escritorio, sigue las mismas instrucciones de las plataformas móviles (comienza con el paso Registra tu app con Firebase).

  2. Ejecuta el proyecto de Unity en su IDE, o bien selecciona que quieres compilar tu proyecto de Unity para computadoras.

  3. (Opcional) Ejecuta el proyecto de Unity en el modo de edición.

    El SDK de Firebase Unity también se puede ejecutar en el modo de edición de Unity, lo que te permite usarlo en complementos del editor.

    1. Cuando crees un FirebaseApp que usa el editor, no uses la instancia predeterminada.

    2. En su lugar, proporciona un nombre único para la llamada FirebaseApp.Create().

      Esto es importante para evitar conflictos en las opciones entre la instancia que usa el IDE de Unity y la instancia que usa tu proyecto de Unity.

Productos de Firebase admitidos

Consulta la documentación de referencia para obtener más información sobre las bibliotecas de Firebase Unity.

El SDK de Firebase Unity admite los siguientes productos de Firebase en iOS y Android:

Producto de Firebase Paquete de Unity
AdMob Se distribuye por separado en el complemento de AdMob para Unity
Analytics FirebaseAnalytics.unitypackage
Authentication FirebaseAuth.unitypackage
Cloud Firestore (beta) FirebaseFirestore.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Messaging FirebaseMessaging.unitypackage
(recomendado) FirebaseAnalytics.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(recomendado) FirebaseAnalytics.unitypackage
Dynamic Links FirebaseDynamicLinks.unitypackage
(recomendado) FirebaseAnalytics.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage
(recomendado) FirebaseAnalytics.unitypackage

Productos de Firebase admitidos (computadoras)

El SDK de Firebase Unity incluye compatibilidad con flujos de trabajo de computadoras para un subconjunto de productos, lo que permite usar ciertas partes de Firebase en el editor de Unity y en versiones independientes para computadoras en Windows, macOS y Linux.

Producto de Firebase (computadoras de escritorio) Paquete de Unity
Authentication FirebaseAuth.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Firestore FirebaseFirestore.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage

Las bibliotecas de escritorio restantes son implementaciones auxiliares (no funcionales) que Firebase proporciona a fin de realizar compilaciones para Windows, macOS y Linux. Por lo tanto, no es necesario que compiles código de manera condicional orientado a la versión para computadoras de escritorio.

Pasos siguientes