У меня есть DispatchActivity как моя активность Launcher, которая предназначена для проверки того, есть ли пользователь, который в настоящий момент зарегистрировался. Если пользователь зарегистрирован, я отправляю их в свой ProfileActivity. В противном случае я отправляю их в LogInActivity. Вот мой код в DispatchActivity:Android FirebaseAuth.getCurrentUser() Never Null
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dispatch);
//.....................
auth = FirebaseAuth.getInstance();
authListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
launchProfileActivity();
} else {
// User is signed out
launchLoginActivity();
}
}
};
}
@Override
public void onStart() {
super.onStart();
auth.addAuthStateListener(authListener);
}
@Override
public void onStop() {
super.onStop();
if (authListener != null) {
auth.removeAuthStateListener(authListener);
}
}
Независимо от того, что я делаю, firebaseAuth.getCurrentUser(), никогда не возвращается нуль на моем первичном устройстве тестирования. Согласно Документам, getCurrentUser() будет иметь значение null, если только пользователь не зарегистрирован. Когда я регистрирую некоторые данные этого пользователя, они согласуются с пользователем «Test», который я создал ранее (например, вызовом user.getEmail() возвращает «[email protected]».
Это проблематично, так как я безусловно не имеют каких-либо пользователей в моей базе данных пользователей консоли (в Authentication/Users). Я удалил этот тест пользователя из базы данных некоторые время назад, и база данных пуста.
Я попытался запустить приложение на другом устройстве, и выполняется должным образом. Тем не менее, не выполняя новую установку на моем первичном устройстве тестирования делает нет t исправить проблему.
Вопрос: Насколько я вижу, проблема связана с каким-то постоянным состоянием пользователя с моим устройством; поскольку работает другое устройство работает нормально. Поскольку я не намеренно настраивал это, я хотел бы знать, что вызывает эту несогласованность между моей Auth User Database и Device.
Если база данных пуста, то где auth.getCurrentUser() получает этот ранее удаленный пользовательский объект?
спасибо.
Я знаю, что вы сказали, что вы переустановили приложение, но попробуйте перейти к настройкам приложения и очистить все данные приложения от телефона. –