Самый простой способ добиться этого - использовать слушателя. Предположим, у вас есть два действия: LoginActivity
и MainActivity
. Слушатель, который можно создать в LoginActivity
, должен выглядеть следующим образом:
val authStateListener = FirebaseAuth.AuthStateListener { firebaseAuth ->
val firebaseUser = firebaseAuth.currentUser
if (firebaseUser != null) {
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
finish()
}
}
Это в основном означает, что если пользователь вошел в систему, пропустите LoginActivity
и перейдите к MainActivity
.
Создание объекта FirebaseAuth
:
val firebaseAuth = FirebaseAuth.getInstance()
И начните прослушивать изменения в вашем onStart()
методе, подобном этому:
override fun onStart() {
super.onStart()
firebaseAuth!!.addAuthStateListener(this.authStateListener!!)
}
В MainActivity
вы должны сделать то же самое:
val authStateListener = FirebaseAuth.AuthStateListener { firebaseAuth ->
val firebaseUser = firebaseAuth.currentUser
if (firebaseUser == null) {
val intent = Intent(this, LoginActivity::class.java)
startActivity(intent)
}
}
Что в основном означает, что если пользователь не вошел в систему, пропустите MainActivity
и перейдите к LoginActivity
. В этом упражнении вы должны сделать то же самое, что и в LoginActivity
, вы должны начать прислушиваться к изменениям в onStart()
.
В обоих действиях не забудьте удалить слушателя в тот момент, когда он больше не нужен. Поэтому добавьте следующую строку кода в ваш метод onStop()
:
override fun onStop() {
super.onStop()
firebaseAuth!!.removeAuthStateListener(this.authStateListener!!)
}