FirebaseUser не является нулевым после анонимной аутентификации - PullRequest
0 голосов
/ 31 мая 2018

У меня есть 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 часов.

Как я могу решить эту проблему, поэтому, если я выхожу из системы, в следующий раз я использую свое приложение, чтобы использовать последнего сгенерированного пользователя, а не очень старого?

1 Ответ

0 голосов
/ 31 мая 2018

Это потому, что Android 6 имеет автоматическое резервное копирование.Вам нужно настроить android:allowBackup и android:fullBackupContent в вашем манифесте application>, если вы не хотите, чтобы ваши данные были зарезервированы или если вы хотите включить или исключить некоторые ресурсы.Это не ошибка.

Вы можете найти больше информации здесь

Короче говоря, чтобы избежать такого поведения, необходимо указать android:allowBackup="false" и android:fullBackupContent="false" в манифесте.XML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...