Agrega Firebase a tu proyecto de Unityplat_iosplat_androidplat_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 acerca de cómo mejorar tus juegos con Firebase en nuestra página de juegos de Firebase.

Paso 1: Configura tu entorno

  • Instala Unity 5.3 o una versión más reciente

  • (solo para iOS) Comprueba si tienes acceso a los siguientes recursos:

    • Xcode 9.4.1 o una versión más reciente
    • CocoaPods 1.4.0 o una versión más reciente
  • Asegúrate de que tu proyecto de Unity esté orientado al nivel de SO adecuado, según se indica a continuación:

    • iOS: orienta a iOS 8 o una versión más reciente.
    • Android: orienta al nivel de API 16 (Jelly Bean) o una versión más reciente.
  • Configura un dispositivo o emulador para ejecutar tu proyecto de Unity.

    • iOS: Para Firebase Cloud Messaging, necesitarás los siguientes elementos:

      • Un dispositivo iOS físico
      • Un certificado APNS con notificaciones push habilitadas
    • Android: Los emuladores deben usar una imagen que cuente con Google Play.

  • Accede a Firebase con tu Cuenta de Google.

Si aún no tienes un proyecto de Unity y solo quieres probar un producto de Firebase, puedes descargar uno de nuestros ejemplos de inicio rápido.

Paso 2: Crea un proyecto de Firebase

Antes de que puedas agregar Firebase a tu 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 3: Registra tu app con Firebase

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

  1. En el centro de la página de descripción general del proyecto en Firebase console, 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 la plataforma.

  2. Selecciona qué destino de compilación de tu proyecto de Unity quieres registrar, o si quieres registrar ambos destinos, este es el momento de hacerlo.

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

    1. Abre el proyecto en el IDE de Unity.

    2. Navega hasta Build Settings (Configuración de compilación) > iOS o Android > Player Settings (Configuración del reproductor) > Other Settings (Otros ajustes).

      El ID del proyecto de Unity es el valor del Bundle Identifier (ID de ejemplo: com.yourcompany.unity-project-name)

    3. Ingresa los ID específicos de las plataformas en los campos correspondientes:

      • iOS: Ingresa el ID de iOS de tu proyecto de Unity en el campo iOS bundle ID (ID del paquete de iOS).

      • Android: Ingresa el ID de Android de tu proyecto de Unity en el campo Android package name (Nombre del paquete de Android).

        • Normalmente, los términos ID de la aplicación y nombre del paquete se utilizan de manera intercambiable.
  4. (Opcional) Ingresa el sobrenombre específico de cada plataforma para tu proyecto de Unity.

    Los sobrenombres son identificadores internos y convenientes que solo tú puedes ver en Firebase console.

  5. Haz clic en Registrar app.

Paso 4: 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.

  2. Abre la ventana Project (Proyecto) de tu proyecto de Unity y transfiere los archivos de configuración a la carpeta Assets.

    • Antes de transferir tu archivo de configuración, asegúrate de que no se hayan agregado caracteres adicionales, como (2), al nombre.
    • Puedes dejar los archivos de configuración de Firebase en cualquier lugar de la carpeta Assets.
  3. Vuelve a Firebase console y, en el flujo de trabajo de configuración, haz clic en Siguiente.

Paso 5: Agrega un SDK de Firebase Unity

Los pasos que se indican en esta sección sirven de ejemplo para agregar cualquier producto de Firebase compatible a un proyecto de Unity. En este ejemplo, se explica cómo agregar Google Analytics para Firebase.

  1. En Firebase console, haz clic en Descargar el SDK de Firebase Unity, y luego 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 que descomprimiste, selecciona la opción para importar el SDK de Analytics (FirebaseAnalytics.unitypackage).

    También puedes importar cualquier otro producto de Firebase admitido.

  4. En la ventana Importar paquete de Unity, haz clic en Importar.

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

Paso 6: Confirma los requisitos de la versión de 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 en su versión 5.4.0, y versiones posteriores, proporciona complementos compatibles con .NET 3.x o .NET 4.x en sus directorios dotnet3 y dotnet4.

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 en algunos tipos de .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 reenvío que reenvían los tipos Parse (por ejemplo, implementación Parse de System.Threading.Tasks.Task) a .NET Framework. Lamentablemente, el IL2CPP (transpilador que convierte C# a 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.

Configura un flujo de trabajo para computadoras de escritorio (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 proyecto de Unity con el de Firebase).

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

  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 una FirebaseApp a fin de que la use 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 Functions FirebaseFunctions.unitypackage
Cloud Messaging FirebaseMessaging.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
Dynamic Links FirebaseDynamicLinks.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage

Productos de Firebase admitidos (computadoras de escritorio)

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

Producto de Firebase (computadoras de escritorio) Paquete de Unity
Authentication FirebaseAuth.unitypackage
Cloud Functions FirebaseFunctions.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