sotto il cappuccioFirebase autenticazione Stato Cambiamento non si attiva quando l'utente è disattivato o cancellato
Sto usando Firebase autenticazione nella mia app Android per iscriversi/gli utenti che utilizzano Google, Facebook e-mail/password . Finora, quasi tutto funziona bene tranne che per un singolo scenario.
Lo scenario
ho bisogno di disabilitare o eliminare account utente dalla console Firebase volte a vietare alcuni utenti di mia app.
In tal caso, quando si disabilita o si elimina quel particolare utente, l'utente deve ottenere disconnesso immediatamente dall'app e non dovrebbe essere più in grado di utilizzarlo.
The Bug
ho usato il AuthStateListener
per ascoltare le modifiche dello stato di autenticazione e di scollegare l'utente automaticamente non appena il loro account è disabilitato o eliminato.
FirebaseAuth.getInstance().addAuthStateListener(firebaseAuth -> {
if (firebaseAuth.getCurrentUser() == null) {
Intent intent = AuthFlowActivity.getCallingIntent(AuthFlowActivity.FORCE_LOGOUT);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
activityExitAnimation(BaseAppActivity.this);
}
});
Ma non ho mai visto AuthStateListener generare alcun evento per queste azioni. Quindi non sono in grado di disconnettere immediatamente l'utente e l'utente può continuare a utilizzare l'app.
Sarei grato se qualcuno possa aiutare a risolvere questo problema.
Grazie mille per avermi aiutato in questo. Non sono chiaro su quale approccio dovrei prendere. Nella stessa nota, vorrei sapere se i listener AuthStateChange vengono attivati se il token di accesso è scaduto? E in quanto tempo scadono i token? –
I token di accesso di breve durata scadono in un'ora (da qui la mia osservazione che ci vorrà al massimo un'ora). Se non è possibile aggiornare il token, questo attiverà sicuramente una modifica dello stato dell'autorizzazione. Se il token si aggiorna, può anche chiamare il metodo, ma non l'ho controllato da un po '(che è più discutibile). –
Grazie Frank. Ma ho osservato che, ho effettuato l'accesso con il mio account Google all'app ed è ancora connesso dopo 2 giorni. Questo è quello che volevo sapere. Una volta effettuato l'accesso, quando scadono questi token e l'utente deve effettuare nuovamente l'accesso per ottenere nuovi token? –