У меня есть 2 действия в моем приложении.У меня также есть кнопка входа, которая при нажатии вызывает этот метод:
private void signIn() {
firebaseAuth.signInAnonymously().addOnCompleteListener(this, task -> {
if (task.isSuccessful()) {
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
goToSecondActivity();
}
}
});
}
Этот метод my goToSecondActivity()
:
private void goToSecondActivity() {
startActivity(new Intent(FirstActivity.this, SecondActivity.class));
finish();
}
Как указано в официальном документе , в onStart()
я проверяю объект firebaseUser
на ничтожность, как это:
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
goToMapActivity();
}
Во втором упражнении я пытаюсь получить uid пользователя следующим образом:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
Если я пытаюсь напечатать этот uid, все работает нормально, uid печатается.Если я пытаюсь выйти (в SecondActivity) и войти снова, генерируется новый идентификатор пользователя, который является правильным.Проблема заключается в том, что если я снова выйду из системы и удалю приложение, а затем снова его запущу, будет использоваться старый пользователь, даже если я буду ждать 5 часов.
Как я могу решить эту проблему, поэтому, если я выхожу из системы, в следующий раз я использую свое приложение, чтобы использовать последнего сгенерированного пользователя, а не очень старого?