4
respostas

Dúvida no Login com FirebaseUI

Olá Devs,

Em uma aplicação android eu usei o FirebaseUI pra gerar automaticamente a minha tela de Login, isso dá acesso a minha primeira Activity do aplicativo. Agora eu queria saber se preciso repetir todo esse código de login nas outras activities? Como vocês fazem?

4 respostas

Fala ai Alex, de boa ?

Cara não entendi bem seu contexto e o que precisa repetir.

Se eu entendi bem, não eh necessário não. Voce soh pega a instancia do Firebase e pega o User logado dele quando precisar.

Olá, obrigado pelas respostas.

Eu devo ter me expressado mal, deixa eu explicar um contexto pra ver se fica mais claro a situação. Imaginem que eu tenha um aplicativo android com 5 telas, sem contar a tela de login que será fornecida pelo FirebaseUI.

1) O usuário abre o aplicativo e na primeira tela é solicitado o login. A Activity do FirebaseUI aparece, o usuário se autentica e a primeira tela é liberada para uso. 2) O usuário navega até a quarta tela normal, mas ele precisa mexer em outra coisa no telefone, aperta o botão home e esquece um pouco o aplicativo em segundo plano. 3) Depois de um tempo, a sessão no Firebase acaba. Quando o usuário volta para o aplicativo, ao checar se o usuário está logado, ele não está. Neste ponto começa a minha dúvida.

O código onde eu adiciono os providers e chamo a tela do FirebaseUI está na primeira tela. O que vocês fazem nesse caso? Enviam o usuário para a primeira tela pra ele começar tudo novamente? Ou simplesmente duplicam o código que gera a tela de login do FirebaseUI na quarta tela? Para que ele(usuário) se autentique novamente e o aplicativo já libere a quarta tela pra ele, sem precisar fazer todo o processo novamente?

Será que fui mais claro?

Sim sim, o que você tem que fazer é verificar se o usuário está logado e fazer o redirecionamento. você pode tentar fazer algo mais ou menos assim

    private FirebaseAuth.AuthStateListener mAuthStateListener;
    mAuthStateListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                FirebaseUser usuario = mFirebaseAuth.getCurrentUser();
                if (usuarioLogado(usuario)) {
                  //faz o que quiser
                } else {
                    vaiParaLogin();

                }
            }
        };

E para verificar se o usuario esta logado

 private boolean usuarioLogado(FirebaseUser usuario) {
        return usuario != null;
    }