Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Autenticar usando o Twitter e o Unity

Você pode permitir que os usuários façam autenticações com o Firebase usando contas do Twitter ao integrar o Login com o Twitter ao app.

Antes de começar

Antes de poder usar o Firebase Authentication, 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, faça o download de um app de amostra.

  • Adicione o SDK do Firebase para Unity (especificamente, FirebaseAuth.unitypackage) ao projeto do Unity.

Adicionar o Firebase ao seu projeto do Unity envolve tarefas no Console do Firebase e no projeto aberto do Unity. Por exemplo, fazer o download dos arquivos de configuração do Firebase no console e movê-los para o projeto do Unity.

Acessar a classe Firebase.Auth.FirebaseAuth

A classe FirebaseAuth é o gateway para todas as chamadas de API. Ela pode ser acessada por meio do FirebaseAuth.DefaultInstance.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

Autenticar no Firebase

  1. Siga as instruções para Fazer login com o Twitter (em inglês) para receber um token de acesso OAuth e um secret OAuth.
  2. Depois que um usuário fizer login, troque o token de acesso por uma credencial do Firebase e faça a autenticação com ela:
    Firebase.Auth.Credential credential =
        Firebase.Auth.TwitterAuthProvider.GetCredential(accessToken, secret);
    auth.SignInWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    

Próximas etapas

Após o primeiro login do usuário, uma nova conta é criada e vinculada às credenciais, que podem ser o nome e a senha, o número de telefone ou as informações do provedor de autenticação com o qual o usuário fez login. Essa nova conta é armazenada como parte do projeto do Firebase e pode ser usada para identificar um usuário em todos os apps do projeto, seja qual for o método de login utilizado.

  • Nos seus apps, use o objeto Firebase.Auth.FirebaseUser para receber as informações básicas de perfil do usuário.

    Firebase.Auth.FirebaseUser user = auth.CurrentUser;
    if (user != null) {
      string name = user.DisplayName;
      string email = user.Email;
      System.Uri photo_url = user.PhotoUrl;
      // The user's Id, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server, if you
      // have one; use User.TokenAsync() instead.
      string uid = user.UserId;
    }
    
  • Nas Regras de segurança do Firebase Realtime Database e do Cloud Storage, é possível receber o ID do usuário único conectado da variável auth e usar esse ID para controlar quais dados um usuário pode acessar.

Os usuários podem fazer login no app usando vários provedores de autenticação. Basta vincular as credenciais desses provedores a uma conta de usuário.

Para desconectar um usuário, chame SignOut():

auth.SignOut();