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 7.0 o una versión más reciente

Si todavía no tienes un proyecto de Unity, puedes descargar una de nuestras guías de inicio rápido de muestra para probar una función de Firebase específica. Si usas un inicio rápido, recuerda obtener el identificador del paquete de la configuración del proyecto, ya que lo necesitarás en el paso siguiente.

Configura tu app en Firebase console

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

Crea un proyecto en Firebase console si no lo hiciste antes. Si ya tienes un proyecto de Google asociado con tu app para dispositivos móviles, haz clic en Importar proyecto de Google. De lo contrario, haz clic en Crear proyecto nuevo.

Android

  1. Haz clic en Agrega Firebase a tu app para Android y sigue los pasos de la configuración. Si estás importando un proyecto de Google existente, es posible que esto suceda 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 del paquete que usa tu app. Esto solo se puede configurar cuando agregas una app a tu proyecto de Firebase.
  3. Descarga un archivo google-services.json cuando se te indique. Puedes volver a descargar este archivo en cualquier momento.
  4. Copia este archivo en cualquier ubicación de la carpeta de elementos de tu proyecto.

iOS

  1. Haz clic en Agrega Firebase a tu app para iOS y sigue los pasos para ajustar la configuración. Si estás importando un proyecto de Google existente, es posible que esto suceda 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 tu app. Esto solo se puede configurar cuando agregas una app a tu proyecto de Firebase.
  3. Descarga un archivo GoogleService-Info.plist cuando se te indique. Puedes volver a descargar este archivo en cualquier momento.
  4. Agrega el archivo GoogleService-Info.plist al proyecto.

  5. Arrastra el GoogleService-Info.plist que descargaste de Firebase console a cualquier carpeta del proyecto de Unity.

Agrega el SDK de Firebase Unity a tu app

  1. Descarga el SDK de Firebase Unity.
  2. Selecciona el elemento de menú Assets > Import Package > Custom Package.
  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.

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 hasta 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 hasta 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, invoca 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 de forma automática cuando se complete.

A continuación, te mostramos un ejemplo de envío de una invitación y 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í de forma automática, 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.