У меня есть SignUpActivity.kt, LoginActivity.kt и ProfileActivity.kt. В SignUpActivity.kt я использую Intent для запуска LoginActivity.kt, а в LoginActivity.kt я использую Intent для запуска ProfileActivity.kt.
SignUpActivity.kt
...
setContentView(R.layout.activity_sign_up)
...
already_have_account_text_view.setOnClickListener {
startActivity(Intent(this, LoginActivity::class.java))
finish()
}
LoginActivity.kt
'' '
...
setContentView(R.layout.activity_login)
...
login_button_login.setOnClickListener {
performLogin()
}
auth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val user = auth.currentUser
updateUI(user)
} else {
updateUI(null)
}
}
public override fun onStart() {
super.onStart()
val currentUser = auth.currentUser
updateUI(currentUser)
}
private fun updateUI(currentUser: FirebaseUser?) {
if(currentUser != null) {
startActivity(Intent(this, ProfileActivity::class.java))
}else {
Toast.makeText(baseContext, "Login failed",
Toast.LENGTH_SHORT).show()
}
}
'' '
Программа работает правильно, но во время Намерения появляется сообщение о том, что «Ошибка входа в систему». Который не должен быть таким. Функция updateUI должна выполняться только при нажатии кнопки входа в систему.
Еще одна проблема, если я позволю этому так, когда пользователь регистрируется в SingUpActivity, пользователь будет перенаправлен на ProfileActivity. Который должен быть таким. Я хочу, чтобы пользователь вошел в систему после регистрации.
Как я могу выполнить функцию updateUI не во время Намерения, а только когда пользователь нажимает кнопку входа в систему?