Ir para o console

Autenticar usando o GitHub e o Unity

Você pode permitir que os usuários se autentiquem no Firebase usando contas do GitHub. Basta integrar a autenticação do GitHub ao seu app.

Antes de começar

Antes de poder usar o Firebase Authentication, é necessário:

  • 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 o Firebase.

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

  • adicionar o SDK do Firebase para Unity (especificamente, FirebaseAuth.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).

Acessar a classe Firebase.Auth

A classe FirebaseAuth é o gateway para todas as chamadas de API. É possível acessá-la por meio do FirebaseAuth.DefaultInstance.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

Autenticar com o Firebase

  1. Siga as instruções para Android e iOS e receba um token referente ao usuário conectado no GitHub.
  2. Depois que um usuário se conectar, troque o token por uma credencial do Firebase e faça a autenticação:
    Firebase.Auth.Credential credential =
        Firebase.Auth.GitHubAuthProvider.GetCredential(accessToken);
    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

Depois que um usuário faz login pela primeira vez, uma nova conta de usuário é criada e vinculada às credenciais, que podem ser o nome, a senha e o número de telefone do usuário ou as informações do provedor de autenticação. 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, é possível consultar as informações básicas de perfil do usuário no objeto Firebase.Auth.FirebaseUser:

    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 usar a variável auth para encontrar o código exclusivo do usuário conectado. Use essa informação para controlar o acesso dele aos dados.

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();