É possível integrar o Firebase Authentication a um sistema de autenticação personalizado modificando o servidor de autenticação para produzir tokens assinados personalizados quando um usuário faz login. Seu app recebe e usa esse token para se autenticar com o Firebase.
Antes de começar
- 
  Antes de usar Firebase Authentication, você precisa: - registrar seu projeto do Unity no seu projeto do Firebase;
- Adicionar o SDK Firebase Unity (especificamente,
      FirebaseAuth.unitypackage) ao projeto do Unity.
 Encontre instruções detalhadas para essas etapas de configuração inicial em Como adicionar o Firebase ao seu projeto do Unity. 
- Para consultar as chaves de servidor do seu projeto, siga estas etapas:
    - Acesse a página Contas de serviço nas configurações do seu projeto.
- Clique em Gerar uma nova chave privada na parte inferior da seção SDK Admin do Firebase da página Contas de serviço.
- O novo par de chaves pública/privada da conta de serviço é salvo automaticamente no seu computador. Copie esse arquivo para seu servidor de autenticação.
 
Autenticar no Firebase
A classeFirebaseAuth é 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;
Chame Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync com o token do servidor de
autenticação.
- Quando os usuários fizerem login no seu app, envie as credenciais de login, como nome de usuário e senha, ao servidor de autenticação. As credenciais são verificadas e, se forem válidas, um token personalizado é retornado.
- Depois de receber o token personalizado do servidor de autenticação, transmita-o para Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsynce faça o login do usuário.auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithCustomTokenAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInWithCustomTokenAsync 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.FirebaseUserpara 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 - authe 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();