1
resposta

[Dúvida] Ao clicar em Sair não está retornando para a tela de autenticação.

Criei uma screen diferente para por o botão de sair, ao invés de abrir no menu lateral, mas ao clicar em sair mesmo deslogando o usuário, não retorna para a tela de autenticação.

D/FirebaseAuth( 7460): Notifying id token listeners about a sign-out event.
D/FirebaseAuth( 7460): Notifying auth state listeners about a sign-out event.
1 resposta

Olá, Déborah.

Tudo bem?

Muito legal você ter implementado a funcionalidade de sair, precisamos só resolver esse problema com a navegação de volta para a tela de autenticação.

Com base no que você compartilhou, parece que a função de deslogar está funcionando corretamente, pois os logs do FirebaseAuth indicam um evento de deslogar. O problema parece estar na parte de redirecionar o usuário para a tela de autenticação após o deslogar.

No Flutter, quando você quer navegar entre as telas, você precisa usar o Navigator. O Navigator funciona como uma pilha, onde você pode empurrar (push) novas rotas (telas) para a pilha ou retirar (pop) rotas da pilha.

No seu caso, após o usuário deslogar, você precisa retirar todas as rotas acima da tela de autenticação na pilha, para que a tela de autenticação se torne a rota ativa. Para fazer isso, você pode usar o método popUntil do Navigator, que retira rotas da pilha até que uma determinada condição seja atendida.

Aqui está um exemplo de como você pode fazer isso:

onTap: () async {
  await AuthService().deslogar();
  Navigator.of(context).popUntil((route) => route.isFirst);
},

Neste exemplo, route.isFirst é a condição que verifica se a rota é a primeira na pilha (ou seja, a tela de autenticação). O método popUntil continuará retirando rotas da pilha até que essa condição seja atendida.

Lembre-se de que isso irá funcionar se a tela de autenticação for a primeira rota na pilha do seu aplicativo. Se não for, você pode precisar ajustar a condição para se adequar à estrutura do seu aplicativo.

Se não conseguir resolver, compartilha o seu código aqui com a gente.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.