У меня проблема с возвращением пользователей в моем приложении, которые используют поток Facebook для аутентификации. приложение работает нормально до тех пор, пока пользователь не уйдет примерно на 48+ часов, но до сих пор точно не может понять.
это шаги:
- Пользователь впервые проходит проверку подлинности с помощью провайдера Facebook из Firebase SDK.
- все идет по плану, приложение работает нормально.
- пользователь покидает приложение и, скажем, возвращается через 2 дня после
- при запуске приложения я проверяю, что пользователь все еще аутентифицирован с использованием
- пользователь проходит проверку (user! = Null, все еще аутентифицирован) и входит в приложение
- пользователь совершает действие, для которого требуется Facebook SDK, поэтому до этого я пытаюсь получить токен доступа, но он нулевой, и я не могу проверить его разрешения. проблема в том, что это именно тот код, который использовался для получения действительного токена 2 дня назад.
вот как я делаю самодостаточный статус аутентификации пользователя:
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if (firebaseAuth.getCurrentUser() == null) {
startAuthActivity();
} else {
checkUserFinishSetup(firebaseAuth.getCurrentUser());
//at the end of checkUserFinishSetup new intent created
//and the user redirect to MainActivity
}
}
};
и это строка, которая вызывает у меня проблемы, когда пользователь должен предпринять действия, требующие действительный токен доступа для Facebook SDK.
AccessToken.getCurrentAccessToken() // return null even though 2 days ago it was valid
Есть ли какая-то встроенная функция, которую нужно вызывать, чтобы обновить токен, предоставленный firebase для пользователей, которые использовали провайдера Facebook \ flow, поэтому у меня будет действительный токен для использования с Facebook SDK?