Ir para o console

Primeiros passos com o Firebase Invites para Unity

Para criar um app cliente compatível com várias plataformas do Firebase invites com o Unity, use a API do Firebase Invites.

Antes de começar

Antes de poder usar o Firebase Invites, você precisa:

  • Registrar seu projeto do Unity e configurá-lo para usar o Firebase

    • Se o projeto do Unity já usa o Firebase, ele já está registrado e configurado para essa plataforma.

    • Se você não tiver um projeto do Unity, poderá fazer o download de um aplicativo de amostra.

  • Adicionar o SDK para Unity do Firebase (especificamente, FirebaseInvites.unitypackage) ao seu projeto do Unity.

A adição do Firebase ao seu projeto do Unity envolve tarefas no Console do Firebase e no projeto do Unity aberto (por exemplo, você faz o download dos arquivos de configuração do Firebase no console e os move para o projeto do Unity).

Envio de convites

Configurar o convite

Crie um novo objeto Invite para configurar o convite:

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"
}

Veja aqui a lista completa das configurações de convite.

Para mais informações sobre como personalizar convites, consulte Firebase invites: práticas recomendadas.

Enviar o convite

Quando você estiver pronto para exibir o convite, chame SendInviteAsync():

FirebaseInvites.SendInviteAsync(invite);

A IU de cliente do Invites será exibida para que o usuário possa escolher os destinatários e modificar a mensagem. Ela ficará na tela até que ele envie ou cancele o convite.

O SendInviteAsync() é retornado imediatamente e a IU é exibida de maneira assíncrona. Os resultados são disponibilizados por meio de um System.Threading.Tasks.Task. Consulte-o para descobrir se o convite foi enviado e determinar quando a IU sairá da tela. Como opção, você pode usar o método ContinueWith dele para acionar o código automaticamente quando ele for concluído.

Veja um exemplo de como enviar um convite e ler os 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);
    }
  }
}

Convites entre plataformas

Se o projeto no Console do Firebase tiver exatamente um app para cada plataforma, o Firebase Invites associará cada app à respectiva plataforma automaticamente. Dessa forma, por exemplo, os usuários do iOS que clicarem em um convite enviado por um usuário do Android serão direcionados ao local correto para instalar o app na plataforma deles.

Se você tiver mais de um app em cada plataforma, configure AndroidPlatformClientId ou IOSPlatformClientId ao transmitir o código do cliente do Firebase da outra plataforma.

Receber convites

Ao receber um convite, caso ainda não tenha o app, o usuário pode instalá-lo na loja de apps da plataforma dele.

Depois que o app é instalado, ele inicia e recebe o URL do seu conteúdo, caso tenha sido enviado. Ele também recebe o ID de convite, que corresponde ao ID do convite de remetente.

Registrar-se para receber convites

Para verificar se há convites, registre-se no 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);
}