Это мой Google Аутентифицировать активность:Зачем createUserWithEmailAndPassword установить текущую пользовательскую переменную (getCurrentUser())?
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if(firebaseAuth.getCurrentUser() != null){
startActivity(new Intent(GoogleAuthentication.this, ChatRoomActvity.class));
} else {
googleSignIn();
}
}
Тогда у меня есть регистровая активность для пользователей, которые хотят, чтобы зарегистрироваться с электронной почтой и передать. Вот фрагмент кода:
mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
mProgress.dismiss();
} else {
Toast.makeText(RegisterActivity.this, "Task not successfull", Toast.LENGTH_LONG).show();
}
}
});
Войти экран имеет 2 варианта 1. Google Войти 2. Регистрация
Проблема заключается в том, когда пользователь может выбрать # 2 говорят регистрацию, он вводит пользователь/пасс и mAuth.createUserWithEmailAndPassword
добавляет этот пользователь/pass к firebase auth db, и он также устанавливает этого пользователя в качестве текущего пользователя. Я не знаю, почему он устанавливает пользователя в качестве текущего пользователя, я просто вызвал mAuth.createUserWithEmailAndPassword
не signInWithEmailAndPassword
.
Теперь после игры с опцией №2, когда пользователь возвращается к # 1, он вступает в систему непосредственно в чате, потому что firebaseAuth.getCurrentUser() != null
.
В принципе, я хочу, чтобы firebase .createUserWithEmailAndPassword
не должен устанавливать текущую пользовательскую переменную. firebaseAuth.getCurrentUser()
должно быть null
, пока я не позвоню signInWithEmailAndPassword
.
Ответ от qbix имеет право на это: создание пользователя автоматически подписывает этого пользователя. Вы могли бы немедленно сразу же подписать пользователя. Но, если честно: заставить пользователя сразу же вводить свои учетные данные, как субоптимальный пользовательский опыт, мне кажется. –