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

Sigue estos pasos para usar Firebase Invites:

  • Registra tu proyecto de Unity y configúralo para usar Firebase.

    • Si tu proyecto de Unity ya usa Firebase, significa que ya está registrado y configurado para Firebase.

    • Si aún no tienes un proyecto de Unity, puedes descargar una app de muestra.

  • Agrega el SDK de Firebase Unity (en específico, FirebaseInvites.unitypackage) al proyecto.

Ten en cuenta que agregar Firebase a tu proyecto de Unity implica realizar tareas en Firebase console y en tu proyecto abierto de Unity (por ejemplo, descargar archivos de configuración de Firebase desde la consola y moverlos a tu proyecto de Unity).

Envía 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 un System.Threading.Tasks.Task, al que puedes consultar si se envió la invitación a fin de determinar en qué momento la IU deja de estar en pantalla, o puedes usar su método ContinueWith a fin de 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í de manera 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 configurar AndroidPlatformClientId o IOSPlatformClientId, lo que te permitirá pasar el ID de cliente de Firebase de la app en la plataforma alternativa.

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.