С Google Firebase AuthStateListener я не уверен, как определить, истек ли срок действия токена аутентификации. Я использую аутентификацию по электронной почте и паролю, и прослушиватель работает правильно, когда пользователи впервые открывают приложение, и автоматически регистрирует их при последующих запусках приложения.
Проблема возникает, когда срок действия их токена входа истекает, и пользователю необходимо повторно пройти аутентификацию. AuthStateListener просто регистрирует их, но служба Firebase отказывает им в доступе, поскольку срок действия их токена истек.
Мой код слушателя:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_selector);
mRef = FirebaseDatabase.getInstance().getReference();
auth = FirebaseAuth.getInstance();
firebaseAuth = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if (firebaseAuth.getCurrentUser()!= null){
Toast.makeText(getApplicationContext(), "Logged in", Toast.LENGTH_SHORT).show();
changeToNextFragment();
} else {
Toast.makeText(getApplicationContext(), "You are not currently logged in.", Toast.LENGTH_SHORT).show();
changeToLogin();
}
}
};
И слушатель вызывается здесь:
@Override
protected void onStart() {
super.onStart();
auth.addAuthStateListener(firebaseAuth);
}
Каков соответствующий тест объекта FirebaseAuth, чтобы узнать, истек ли срок действия токена?