getLastSignInTimestamp () не работает должным образом с AuthStateListener - PullRequest
0 голосов
/ 29 апреля 2020

Я использую AuthStateListener в своем приложении. Я использую почти аналогичный код для идентификации нового / существующего пользователя, как указано в FirebaseUI docs .

public static boolean isNewUser() {
    FirebaseUserMetadata metadata = mCurrentUser.getMetadata();
    long creation = metadata.getCreationTimestamp();
    long lastSignIn = metadata.getLastSignInTimestamp();
    return creation == lastSignIn;
}

Однако существует проблема. После первого входа пользователя этот метод продолжает возвращать true, то есть и getCreationTimestamp() и getLastSignInTimestamp() возвращают одно и то же значение, пока я не вызову AuthUI.getInstance().signOut(this); и не заставлю пользователя войти снова.

Но как мы знаем, выход пользователя из приложения - это редкое событие; Кроме того, нецелесообразно выходить из него каждый раз, когда он покидает приложение. Я ожидал, что когда AuthStateListener изменит состояние, указав, что пользователь выполнил вход, оно должно обновить отметку времени.

Как заставить это работать? Каковы лучшие практики здесь?

...