23 de março de 2019

Utilizando o Firebase Authentication em uma aplicação Android

O Firebase é uma excelente plataforma que auxilia desenvolvedores web e mobile na criação de aplicações de alta qualidade e performance, desde a concepção, monitoramento até a publicação. Você pode conhecer um pouco mais sobre ele no post: Firebase: descubra no que esta plataforma pode te ajudar.

Hoje veremos como implementar o Firebase em uma aplicação Android através do Android Studio e utilizar o serviço de autenticação Firebase Authentication.

Step 1: Acesse https://console.firebase.google.com e faça login com um conta do Google. Após o login será disponibilizado para você a opção de criar um novo projeto no Firebase.

Step 2: Após clicar na opção Novo Projeto no passo anterior, você deve informar o nome do projeto e o País/Região para criá-lo.

Depois de criado, você já tem acesso a todas as opções disponíveis.

Step 3: Agora, você deve criar um projeto no Android Studio que integre o Firebase. No meu caso, criei um projeto com o nome Artigo Firebase e package br.com.treinaweb.artigofirebase.

Step 4: Após o projeto criado no Android Studio, é hora de integrar o Firebase. Para isso, clique no menu Tools > Firebase.

Ao clicar nesta opção, irá aparecer no lado direto, no Android Studio, o assistente de configuração do Firebase. Clique na opção Authentication.

Step 5: Após clicar na opção de autenticação, você tem a opção de conectar o projeto ao Firebase. É isto que faremos agora clicando na opção Connect to Firebase.

Step 6: Neste momento o seu navegador será aberto e solicitará algumas permissões de acesso a sua conta.

Após as permissões serem concedidas deverá aparecer para você uma mensagem de sucesso:

Depois de visualizar a mensagem, volte ao Android Studio.

Step 7: Ao retornar para o Android Studio, você terá as opções de criar um novo projeto ou escolher um projeto existente. No nosso caso, vamos escolher o projeto existente que criamos no Firebase e conectá-lo efetivamente ao projeto no Android Studio, clicando na opção Connet to Firebase.

Depois de processar a sua solicitação será exibido no assistente que o seu projeto está conectado.

Step 8: Agora que o projeto no Android Studio está vinculado ao projeto no Firebase, é hora de utilizar os recursos de Autenticação. Para isso, clique na opção Authentication na página do seu projeto no Firebase. E, para escolhermos as formas de autenticação que iremos utilizar, clique na opção Configurar método de login.

Step 9: Neste exemplo vamos utilizar a autenticação de E-mail/Senha. Sendo assim, ative-a.

Step 10: Após ativar a opção no passo anterior, vá até a guia Usuários e adicione um novo para utilizarmos na aplicação clicando na opção 2 Adicionar Usuário. Informe um e-mail e senha e adicione-o.

Step 11: Depois de criar o usuário, volte ao Android Studio e adicione o SDK do Firebase contendo o módulo de Autenticação na aplicação. Para isto basta clicar na opção Add Firebase Authentication to your app e aceitar as modificações em Accept Changes.

Step 12: Agora basta implementar os códigos necessários para realizar o login através do Firebase Auth. Neste caso, não utilizaremos uma tela de login para o usuário informar os dados de acesso. O foco é mostrar o que é preciso para fazer a autenticação utilizando o Firebase. Vamos através da do Log informar se os dados de login informados são válidos ou não.

Primeiro precisamos recuperar a instância do Firebase Auth. Basta criar a variável global:

private FirebaseAuth mAuth;

E, no método onCreate(), recuperar a instância:

mAuth = FirebaseAuth.getInstance();

Para monitorar as mudanças no estado da autenticação, vamos adicionar um Listener para isso. Vamos criar a variável no escopo global:

private FirebaseAuth.AuthStateListener mAuthListener;

E no método onCreate() adicione:

mAuthListener = new FirebaseAuth.AuthStateListener() {
    @Override
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
        FirebaseUser user = firebaseAuth.getCurrentUser();
        if (user != null) {
            Log.d("AUTH", "onAuthStateChanged:signed_in:" + user.getUid());
        } else {
            Log.d("AUTH", "onAuthStateChanged:signed_out");
        }

    }
};

Agora nos métodos onStart() e onStop() devemos adicionar e remover, respectivamente, o monitoramento através do Listener:

@Override
public void onStart() {
    super.onStart();
    mAuth.addAuthStateListener(mAuthListener);
}

@Override
public void onStop() {
    super.onStop();
    if (mAuthListener != null) {
        mAuth.removeAuthStateListener(mAuthListener);
    }
}

E para fazer o login, propriamente dito, basta utilizar o seguinte código no método onCreate():

mAuth.signInWithEmailAndPassword("testeteste@treinaweb.com.br", "thmpv77d6f").addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
    @Override
    public void onComplete(@NonNull Task<AuthResult> task) {

        if (!task.isSuccessful()) {
            Log.w("AUTH", "Falha ao efetuar o Login: ", task.getException());
        }else{
            Log.d("AUTH", "Login Efetuado com sucesso!!!");
        }
    }
});

Ao executar esta aplicação temos o seguinte resultado no Log:

Desta forma o nosso login utilizando a autenticação do Firebase já está funcional. o/

Você pode consultar a documentação oficial através do site do Firebase.

Ah, claro, você também pode fazer o nosso curso Firebase com Android:

Um abraço e até a próxima!

Instrutor, Desenvolvedor Android, Mestrando em Bioinformática pela UFMG, MBA Executivo em Gerenciamento de Projetos pela UCAM, Graduado em Ciência da Computação pela FUNIP, Membro da SBC, ACM e AB3C.