Você pode usar Firebase Authentication para permitir que os usuários façam login no seu jogo usando um ou mais métodos de login, incluindo login com endereço de e-mail e senha e provedores de identidade federados, como o Login do Google e do Facebook. Este tutorial mostra uma introdução ao Firebase Authentication e como adicionar no seu jogo um login com endereço de e-mail e senha.
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, fazer o download dos arquivos de configuração do Firebase no console e mover para o projeto do Unity.
Login de novos usuários
Crie um formulário que permita que novos usuários se inscrevam no seu jogo usando endereço de e-mail e senha. Quando um usuário preencher o formulário, valide o endereço de e-mail e a senha informados por ele e envie-os para o método CreateUserWithEmailAndPasswordAsync
:
auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
if (task.IsCanceled) {
Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled.");
return;
}
if (task.IsFaulted) {
Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception);
return;
}
// Firebase user has been created.
Firebase.Auth.AuthResult result = task.Result;
Debug.LogFormat("Firebase user created successfully: {0} ({1})",
result.User.DisplayName, result.User.UserId);
});
Login de usuários existentes
Crie um formulário que permita que usuários atuais façam login com um endereço de e-mail
e senha. Quando um usuário preencher o formulário, chame o método SignInWithEmailAndPasswordAsync
:
auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
if (task.IsCanceled) {
Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
return;
}
if (task.IsFaulted) {
Debug.LogError("SignInWithEmailAndPasswordAsync 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);
});
Definir um manipulador de eventos de alteração do estado de autenticação e coletar dados do usuário
Para responder a eventos de login e logout, anexe um manipulador de eventos ao objeto de autenticação global. Esse manipulador é chamado sempre que o estado de login do usuário é alterado. O manipulador é executado somente depois que o objeto de autenticação é totalmente inicializado e depois que todas as chamadas de rede são concluídas. Por isso, ele é a melhor maneira de verificar informações sobre o usuário conectado.
Registre o manipulador de eventos usando o campo StateChanged
do objeto FirebaseAuth
. Quando um usuário fizer login corretamente, você poderá verificar as informações sobre ele no manipulador de eventos.
Por fim, quando o objeto tiver Destroy
chamado, ele vai chamar
OnDestroy
automaticamente. Limpe as referências do objeto Auth em OnDestroy
.
void InitializeFirebase() {
auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
auth.StateChanged += AuthStateChanged;
AuthStateChanged(this, null);
}
void AuthStateChanged(object sender, System.EventArgs eventArgs) {
if (auth.CurrentUser != user) {
bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null
&& auth.CurrentUser.IsValid();
if (!signedIn && user != null) {
DebugLog("Signed out " + user.UserId);
}
user = auth.CurrentUser;
if (signedIn) {
DebugLog("Signed in " + user.UserId);
displayName = user.DisplayName ?? "";
emailAddress = user.Email ?? "";
photoUrl = user.PhotoUrl ?? "";
}
}
}
void OnDestroy() {
auth.StateChanged -= AuthStateChanged;
auth = null;
}
Próximas etapas
Saiba como adicionar suporte para outros provedores de identidade e contas de convidados anônimos: