Primeros pasos con Firebase Invites para Unity

Para escribir tu app cliente multiplataforma de Firebase Invites con Unity, usa la API de Firebase Invites.

Antes de comenzar

Para poder usar Firebase Invites, 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 posterior

Si todavía no tienes un proyecto de Unity, puedes descargar uno de nuestros ejemplos de inicio rápido para probar una función de Firebase específica. Si usas un inicio rápido, recuerda obtener 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 tu app, debes tener un proyecto y un archivo de configuración de Firebase.

Para crear un proyecto de Firebase:

  1. Crea un proyecto en Firebase console si no lo hiciste anteriormente. Haz clic en Agregar proyecto. Si ya tienes un proyecto de Google asociado con tu app para dispositivos móviles, selecciónalo en el menú desplegable Nombre del proyecto. De lo contrario, ingresa un nombre para crear un proyecto nuevo.
  2. Opcional: Edita el ID del proyecto. Automáticamente se asigna un ID único al proyecto, que se usa en características de Firebase visibles de manera pública, como URL de bases de datos y el subdominio de Firebase Hosting. Puedes cambiarlo en este momento si deseas usar un subdominio específico.
  3. Sigue los pasos de configuración restantes y haz clic en Crear proyecto (o Agregar Firebase si usas un proyecto existente) a fin de aprovisionar recursos para tu proyecto. Este proceso suele tardar algunos minutos. Cuando finalice, verás la descripción general del proyecto.

Android

  1. Haz clic en Agrega Firebase a la app para Android y sigue los pasos de la configuración. Si estás importando 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 tu app está usando. Esto solo se puede configurar cuando agregas una app a tu 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 tu app para verificar con Firebase console que instalaste Firebase correctamente.

iOS

  1. Haz clic en Agrega Firebase a tu app para iOS y sigue los pasos de configuración. Si estás importando 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 de paquete de la app cuando se te solicite. Es importante que ingreses el ID de paquete que tu app está usando. Esto solo se puede configurar cuando agregas una app a tu 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 tu 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ú Recursos > Importar paquete > Paquete personalizado.
  3. Importa el paquete FirebaseInvites.unitypackage del SDK de Firebase Unity que descargaste previamente.
  4. Cuando aparezca la ventana Import Unity Package, haz clic en el botón Import.

Inicializa el SDK

El SDK de Firebase Unity en Android requiere los Servicios de Google Play, los que deben estar actualizados para usar el SDK. 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 el SDK de Firebase Unity requiere a fin de poder llamar a otros métodos en él.

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Set a flag here indiciating 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 tu app

Android

  1. Selecciona la opción de menú File > Build Settings.
  2. Selecciona Android en la lista Platform.
  3. Haz clic en Switch Platform para elegir 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 Build and Run.

iOS

  1. Selecciona la opción de menú File > Build Settings.
  2. Selecciona iOS en la lista Platform.
  3. Haz clic en Switch Platform para elegir 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 Build and Run.

Enviar invitaciones

Configura la invitación

Crea un objeto Invite nuevo para configurar la invitación:

var invite = new Firebase.Invites.Invite() {
    TitleText = "Invites Test App",
    MessageText = "Please try my app! It's awesome.",
    CallToActionText = "Download it for FREE",
    DeepLinkUrl = "http://google.com/abc"
}

Haz clic aquí para ver la lista completa de opciones de invitación.

Para obtener más información sobre la personalización de invitaciones, consulta Firebase Invites: Prácticas recomendadas.

Envía la invitación

Cuando estés listo para mostrar la invitación, llama a SendInviteAsync():

FirebaseInvites.SendInviteAsync(invite);

Esto muestra la IU del cliente de Invites, lo que permite que el usuario seleccione los destinatarios y modifique el mensaje si lo desea. Esta IU permanece en pantalla hasta que el usuario decide enviar la invitación o cancelarla.

SendInviteAsync() actúa de inmediato y muestra la IU en forma asíncrona. Además, muestra sus resultados a través de una System.Threading.Tasks.Task, que puedes consultar para saber si la invitación se envió y determinar en qué momento la IU deja de estar en pantalla, o puedes usar su método ContinueWith para activar el código automáticamente cuando se complete.

A continuación, te mostramos un ejemplo del envío de una invitación y de la lectura de los resultados:

public void SendInvite() {
  Debug.Log("Sending an invitation...");
  var invite = new Firebase.Invites.Invite() {
    TitleText = "Invites Test App",
    MessageText = "Please try my app! It's awesome.",
    CallToActionText = "Download it for FREE",
    DeepLinkUrl = "http://google.com/abc"
  }
  Firebase.Invites.FirebaseInvites
    .SendInviteAsync(invite).ContinueWith(HandleSentInvite);
}

void HandleSentInvite(Task< Firebase.Invites.SendInviteResult > sendTask) {
  if (sendTask.IsCanceled) {
    Debug.Log("Invitation canceled.");
  } else if (sendTask.IsFaulted) {
    Debug.Log("Invitation encountered an error:");
    Debug.Log(sendTask.Exception.ToString());
  } else if (sendTask.IsCompleted) {
    int inviteCount = (new List(sendTask.Result.InvitationIds)).Count;
    Debug.Log("SendInvite: " + inviteCount + " invites sent successfully.");
    foreach (string id in sendTask.Result.InvitationIds) {
      Debug.Log("SendInvite: Invite code: " + id);
    }
  }
}

Invitaciones multiplataforma

Si tu proyecto de Firebase console contiene exactamente una aplicación para cada plataforma, Firebase Invites asocia las aplicaciones entre sí automáticamente, de manera que, por ejemplo, si un usuario de iOS hace clic en una invitación que envió un usuario de Android, se lo envía al lugar correcto para instalar tu app en su plataforma.

Si tienes más de una aplicación en cada plataforma, puedes pasar el ID de cliente de Firebase de la aplicación en la plataforma alternativa para configurar AndroidPlatformClientId o IOSPlatformClientId.

Recibe invitaciones

Cuando un usuario recibe una invitación, si aún no instaló la app, puede elegir instalarla desde la tienda de apps de su plataforma.

Tras la instalación (en caso de que haya sido necesaria), la app se inicia y recibe la URL que conduce al contenido al contenido, si enviaste una. La app también recibe el ID de invitación, que coincide con el ID de invitación del remitente.

Regístrate para recibir la invitación entrante

Para verificar si hay invitaciones, debes registrarte en el evento InviteReceived.

void Start() {
    Firebase.Invites.FirebaseInvites.InviteReceived += OnInviteReceived;
    Firebase.Invites.FirebaseInvites.InviteNotReceived += OnInviteNotReceived;
    Firebase.Invites.FirebaseInvites.ErrorReceived += OnErrorReceived;
}

void OnInviteReceived(object sender,
                      Firebase.Invites.InviteReceivedEventArgs e) {
  if (e.InvitationId != "") {
    Debug.Log("Invite received: Invitation ID: " + e.InvitationId);
    Firebase.Invites.FirebaseInvites.ConvertInvitationAsync(
        e.InvitationId).ContinueWith(HandleConversionResult);
  }
  if (e.DeepLink.ToString() != "") {
    Debug.Log("Invite received: Deep Link: " + e.DeepLink);
  }
}

void OnInviteNotReceived(object sender, System.EventArgs e) {
  Debug.Log("No Invite or Deep Link received on start up");
}

void OnErrorReceived(object sender,
                     Firebase.Invites.InviteErrorReceivedEventArgs e) {
  Debug.LogError("Error occurred received the invite: " + e.ErrorMessage);
}

Enviar comentarios sobre…

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