Ir para o console

Primeiros passos com o Firebase Authentication no Unity

Use o 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, além de provedores de identidade federados como Login do Google e do Facebook. Veja neste tutorial os primeiros passos com o Firebase Authentication e como adicionar no seu jogo um login com endereço de e-mail e senha.

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 para Unity do Firebase (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).

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 completar o formulário, valide o endereço de e-mail e a senha informados 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.FirebaseUser newUser = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

Login de usuários existentes

Crie um formulário que permita que usuários existentes façam login usando endereço de e-mail e senha. Quando um usuário completar 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.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.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.

Inscreva o manipulador de eventos com o campo StateChanged do objeto do FirebaseAuth. Quando um usuário fizer login corretamente, você poderá verificar as informações sobre ele no manipulador de eventos.

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;
    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 ?? "";
    }
  }
}

Próximas etapas

Saiba como adicionar suporte para outros provedores de identidade e contas de convidados anônimos: