Primeros pasos con Firebase Remote Config para Unity

Puedes usar Firebase Remote Config para definir los parámetros en la app y actualizar sus valores en la nube, lo que te permite modificar el aspecto y el comportamiento de la app sin distribuir una actualización de esta.

La biblioteca de Remote Config se usa para almacenar los valores de parámetros predeterminados dentro de la app, obtener los valores de parámetros actualizados desde el servicio y controlar cuándo están disponibles los valores obtenidos para la app. Para obtener más información, consulta la descripción general de la API de Remote Config.

Cómo agregar Remote Config a tu app

Para poder usar Firebase Remote Config, debes crear un proyecto de Firebase y agregar los paquetes del SDK de Firebase Unity a tu proyecto de Unity.

Configuración:

Requisitos previos

Android

  • Unity 5.0 o una versión más reciente
  • NDK de Android 10d o una versión más reciente

iOS

  • Unity 5.0 o una versión más reciente
  • Xcode 8.0 o una versión más reciente

Si todavía no tienes un proyecto de Unity, puedes descargar uno de los ejemplos de inicio rápido para probar una función de Firebase específica. Si usas un ejemplo de inicio rápido, recuerda consultar el identificador de paquete en la configuración del proyecto, ya que lo necesitarás en el próximo paso.

Configura la app en Firebase console

Para agregar Firebase a la app, debes tener un proyecto y un archivo de configuración de Firebase.

Para crear un proyecto de Firebase:

  1. Dirígete a Firebase console.

  2. Haz clic en Agregar proyecto, luego selecciona o ingresa un Nombre del proyecto.

    • Si hay un proyecto de Google existente asociado con tu app, selecciónalo desde el menú desplegable Nombre del proyecto.
    • Si no hay un proyecto de Google existente, ingresa un nuevo Nombre del proyecto.
  3. (Opcional) Edita el ID del proyecto.

    Firebase asignará de manera automática un ID único a tu proyecto de Firebase. Este identificador se muestra en los servicios de Firebase visibles de forma pública, por ejemplo:

    • URL predeterminada para la base de datos: your-project-id.firebaseio.com
    • Subdominio de hosting predeterminado: your-project-id.firebaseapp.com
  4. Sigue los pasos de configuración restantes y, luego, haz clic en Crear proyecto (o Agregar Firebase, si usas un proyecto de Google existente).

Firebase aprovisiona los recursos para tu proyecto de forma automática. Este proceso suele tardar algunos minutos. Cuando finalice, verás la página descripción general del proyecto en Firebase console.

Android

  1. Haz clic en Agrega Firebase a tu app para Android y sigue los pasos de la configuración. Si importas un proyecto de Google existente, es posible que esto ocurra de forma automática y solo tengas que descargar el archivo de configuración.
  2. Ingresa el nombre del paquete de la app cuando se te solicite. Es importante que ingreses el nombre de paquete que usa la app. Esta configuración solo puede hacerse al agregar una app al proyecto de Firebase.
  3. Durante el proceso, descargarás un archivo google-services.json. Puedes volver a descargarlo en cualquier momento.
  4. Después de agregar el código de inicialización, ejecuta la app para verificar con Firebase console que instalaste Firebase correctamente.

iOS

  1. Haz clic en Agrega Firebase a la app para iOS y sigue los pasos de configuración. Si importas un proyecto de Google existente, es posible que esto ocurra de forma automática y solo tengas que descargar el archivo de configuración.
  2. Ingresa el ID del paquete de la app cuando se te solicite. Es importante que ingreses el ID del paquete que usa la app. Esta configuración solo puede hacerse al agregar una app al proyecto de Firebase.
  3. Durante el proceso, descargarás un archivo GoogleService-Info.plist. Puedes volver a descargarlo en cualquier momento.
  4. Después de agregar el código de inicialización, ejecuta la app para verificar con Firebase console que instalaste Firebase correctamente.
  5. Arrastra el archivo GoogleService-Info.plist que se descargó de Firebase console a cualquier carpeta del proyecto de Unity.

Agrega el SDK de Firebase Unity a la app

  1. Descarga el SDK de Firebase Unity.
  2. Selecciona el elemento de menú Assets > Import Package > Custom Package.
  3. Importa el paquete FirebaseRemoteConfig.unitypackage del SDK de Firebase Unity que descargaste previamente.
  4. Cuando aparezca la ventana Importar paquete de Unity, haz clic en el botón Importar.

Inicializa el SDK

El SDK de Firebase Unity en Android requiere los Servicios de Google Play actualizados. Se debe agregar el siguiente código al inicio de la aplicación para buscar y, de forma opcional, actualizar los Servicios de Google Play a la versión que requiera el SDK de Firebase Unity a fin de que sea 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, i.e.
    //   app = Firebase.FirebaseApp.DefaultInstance;
    // where app is a Firebase.FirebaseApp property of your application class.

    // Set a flag here indicating that Firebase is ready to use by your
    // application.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

Compila la app

Android

  1. Selecciona la opción de menú Archivo > Configuración de compilación.
  2. Selecciona Android en la lista Plataforma.
  3. Haz clic en Cambiar plataforma para establecer Android como plataforma seleccionada.
  4. Espera a que se detenga el ícono giratorio (de compilación en proceso) que se encuentra en la esquina inferior derecha de la barra de estado de Unity.
  5. Haz clic en Compilar y ejecutar.

iOS

  1. Selecciona la opción de menú Archivo > Configuración de compilación.
  2. Selecciona iOS en la lista Plataforma.
  3. Haz clic en Cambiar plataforma para establecer iOS como plataforma seleccionada.
  4. Espera a que se detenga el ícono giratorio (de compilación en proceso) que se encuentra en la esquina inferior derecha de la barra de estado de Unity.
  5. Haz clic en Compilar y ejecutar.

Configura los valores de parámetros predeterminados en la app

Puedes establecer valores de parámetros predeterminados en el objeto de Remote Config para usarlo si no se recuperan otros valores del servicio. Esto permite que tu app se comporte de la manera prevista antes de que se conecte con el servicio de Remote Config.

Para esto, crea un diccionario de strings y llénalo con pares clave-valor que representen los valores predeterminados que deseas agregar. (Las propiedades que no sean strings se convertirán al tipo de la propiedad cuando se llame a SetDefaults).

System.Collections.Generic.Dictionary defaults =
  new System.Collections.Generic.Dictionary();

// These are the values that are used if we haven't fetched data from the
// service yet, or if we ask for values that the service doesn't have:
defaults.Add("propertyname_string", "default local string");
defaults.Add("propertyname_int", 1);
defaults.Add("propertyname_float", 1.0);
defaults.Add("propertyname_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.SetDefaults(defaults);

Cómo obtener los valores de parámetros para usar en tu app

Ahora puedes obtener los valores de parámetros desde el objeto Remote Config. Si estableciste valores en el servicio de Remote Config, los recuperaste y los activaste, esos valores están disponibles para tu app. De lo contrario, obtienes los valores de parámetro configurados dentro de la aplicación con SetDefaults().

Para obtener estos valores, usa GetValue() y proporciona la clave del parámetro como un argumento. Esto muestra un ConfigValue, que tiene propiedades para convertir el valor a varios tipos base.

Conecta tu app en Firebase console

En Firebase console, agrega la app al proyecto de Firebase.

Configura los valores de parámetro en el servicio (según sea necesario)

  1. Abre el proyecto en Firebase console.
  2. Selecciona Remote Config desde el menú para ver el panel de control de Remote Config.
  3. Define los parámetros con los mismos nombres que los parámetros que definiste en la app. Para cada parámetro, puedes configurar un valor predeterminado (que eventualmente anulará el valor predeterminado en la app) y valores condicionales. Para obtener más información, consulta los parámetros y condiciones de Remote Config.

Obtén y activa valores desde el servicio (según sea necesario)

Para recuperar los valores del parámetro del servicio de Remote Config, llama al método FetchAsync(). Cualquier valor que configures en el servicio de Remote Config se recupera y se almacena en caché en el objeto de Remote Config.

Los valores obtenidos a través de FetchAsync() se almacenan en caché de manera local cuando termina la recuperación, pero no estarán disponibles hasta que se invoque ActivateFetched(). Dado que FetchAsync() se ejecuta de forma asíncrona, puedes estar seguro de que los valores nuevos no se aplican en medio del cálculo ni en otro momento que pueda causar problemas o un comportamiento extraño.

(Opcional) Habilita el modo de programador

A fin de habilitar el modo de desarrollador, que se puede usar para inhabilitar la regulación durante el desarrollo, puedes usar la propiedad FirebaseRemoteConfig.Setting, con un ConfigSettings nuevo con IsDeveloperMode configurado como verdadero.

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.