Firebase

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.

Firebase com Android - Módulo Develop
Curso de Firebase com Android - Módulo Develop
CONHEÇA O CURSO

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:

Firebase com Android - Módulo Develop
Curso de Firebase com Android - Módulo Develop
CONHEÇA O CURSO

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

Firebase: descubra no que esta plataforma pode te ajudar

O Firebase é uma plataforma do Google que contém várias ferramentas e uma excelente infraestrutura para ajudar desenvolvedores web e mobile a criar aplicações de alta qualidade e performance.

Esta plataforma contém quatro seguimentos de serviços: Analytics, Develop, Grow e Earn. Veja um pouco sobre cada um deles.

Android - Avançado
Curso de Android - Avançado
CONHEÇA O CURSO

Analytics

O Firebase Analytics é uma solução gratuita e ilimitada, considerado o coração do Firebase, é utilizado para gerar as métricas da aplicação, mensurar o comportamento do usuário. Atualmente é disponibilizado para aplicações iOS e Android.

Develop

Com a missão de poupar tempo e fornecer um aplicativo de alta qualidade, esta plataforma contém vários recursos para os desenvolvedores, são eles:

  • Cloud Messaging: O Firebase Cloud Messaging – FCM permite a entrega/recebimento de mensagens e notificações entre as plataformas iOS, Android e Web.

  • Authentication: Este recurso de autenticação é fundamental para as aplicações onde é necessário saber a identidade do usuário e manter o controle do acesso ao app. Também, com o Firebase Authentication, é possível utilizar provedores de identidades federais para autenticação como as contas do Google, Facebook, Twitter e GitHub.

  • Realtime Database: O Firebase também disponibiliza um banco de dados NoSQL (Firebase Realtime Databse) hospedado em nuvem, onde os dados são armazenados como JSON e sincronizados em tempo real com todos os clientes conectados.

  • Storage: Útil para armazenar arquivos como imagens, vídeos e áudio, além de outros conteúdos gerados por usuários.

  • Hosting: Este serviço é oferecido para hospedar HTML, CSS e JavaScript para seu site, além de outros ativos fornecidos pelo desenvolvedor, como gráficos, fontes e ícones. O Firebase Hosting possui certificado SSL fornecido automaticamente, é ideal para aplicativos web e web para dispositivos móveis.

  • Remote Config: Armazena pares de chave-valor especificados pelo desenvolvedor que permite alterar o comportamento e a aparência do aplicativo sem exigir que os usuários baixem uma atualização do app.

  • Test Lab: O Firebase Test Lab fornece toda infraestrutura em nuvem que você precisa para testar seus aplicativos Android e mesmo que você não tenha escrito o código de teste para o app, o Test Lab pode operar no seu aplicativo automaticamente em busca de falhas. Todos os resultados do teste são disponibilizados no Firebase console.

  • Crash Reporting: Este recurso é capaz de criar relatórios de erro detalhados para os aplicativos Android e iOS. Os erros são agrupados em conjuntos e são organizados de acordo com a gravidade do impacto para os usuários. Até o momento está na versão beta e já demonstra ser um excelente aliado para os desenvolvedores.

Nem todos os recursos para desenvolvedores são disponibilizados em todas as plataformas (Android, iOS, web), para resumir, é possível ver no quadro abaixo a relação de Recurso x Plataforma:

React - Trabalhando com Arquitetura Flux
Curso de React - Trabalhando com Arquitetura Flux
CONHEÇA O CURSO

Grow

Além de vários recursos para auxiliar no desenvolvimento das aplicações, o Firebase também disponibiliza recursos voltados ao envolvimento e conquista dos usuários para a aplicação, estes recursos são:

  • Notifications: Através deste recurso é possível gerenciar campanhas de notificações para seu app e quando integrado ao Firebase Analytics é possível entregar mensagens a um segmento específico de usuários.

  • App Indexing: Com o App Indexing você consegue aumentar a visibilidade do seu app em pesquisas do Google e do Now on Tap em dispositivos Android. E um recurso interessante é que os usuários ao buscarem um conteúdo relacionado eles poderão iniciar o aplicativo diretamente dos resultados de busca, se app estiver instalado no dispositivo, e caso não esteja, é exibido uma opção para instalação do aplicativo.

  • Invites: O Invites, é uma solução desenvolvida para indicações e compartilhamento de aplicativos. Permite que os usuários do app compartilhem o aplicativo ou o conteúdo por e-mail ou SMS.

  • AdWords: Este recurso vinculado ao Firebase Analytics permite que você mostre anúncios direcionados a segmentos de usuários, assim é possível otimizar o desempenho de sua campanha de forma eficaz.

Earn

Para lucrar com seus aplicativos através da exibição de anúncios, o Firebase disponibiliza o AdMob. Com ele é possível monetizar seus apps mobile com publicidade segmentada dentro do aplicativo e assim gerar receita sem prejudicar a experiência do usuário.

O Firebase fornece tudo que você precisa para desenvolver aplicações web e mobile, desde o desenvolvimento e testes até a publicação e divulgação do aplicativo. Para conhecer mais sobre ele, acesse Firebase.

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

React - Redux e Redux-Saga
Curso de React - Redux e Redux-Saga
CONHEÇA O CURSO