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 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 exemplo.

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

Adicionar o Firebase ao projeto do Unity envolve tarefas no console do Firebase e no projeto aberto do Unity (por exemplo, baixar os arquivos de configuração do Firebase no console e movê-los para o projeto do Unity).

Acessar a classe Firebase.Auth

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

Autenticar no 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.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => {   if (task.IsCanceled) {     Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled.");     return;   }   if (task.IsFaulted) {     Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception);     return;   }    Firebase.Auth.AuthResult result = task.Result;   Debug.LogFormat("User signed in successfully: {0} ({1})",       result.User.DisplayName, result.User.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 número do telefone, o nome de usuário e a senha 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, 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 Firebase Realtime Database e Cloud Storage, você pode acessar o ID exclusivo do usuário conectado pela variável auth e usar essas informações 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();