Я хочу, чтобы, когда я вошел в систему, используя свой адрес электронной почты и пароль, и он перешел на панель действий, приложение оставалось в DashboardActivity.kt, но когда я закрываю приложение и открываю снова это приложение выходит из системы и начинается с активности входа в систему.
вот мои коды:
ActivityMain.kt:
Код: Выделить всё
class MainActivity : AppCompatActivity() {
private lateinit var auth: FirebaseAuth
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
initData()
}
private fun initData(){
auth = FirebaseAuth.getInstance()
checkIfUserIsLoggedIn()
}
private fun checkIfUserIsLoggedIn(){
val currentUser = auth.currentUser
if (currentUser != null){
startActivity(Intent(this,DashbordActivity::class.java))
finish()
}else{
startActivity(Intent(this,LoginActivity::class.java))
finish()
}
}
}
Код: Выделить всё
class DashbordActivity : AppCompatActivity() {
private lateinit var auth: FirebaseAuth
private lateinit var binding: ActivityDashbordBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityDashbordBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
initData()
}
private fun initData(){
auth = FirebaseAuth.getInstance()
setUserEmail()
clickListener()
}
private fun clickListener(){
binding.btnSignOut.setOnClickListener {
auth.signOut()
startActivity(Intent(this,LoginActivity::class.java))
finish()
}
}
private fun getCurrentUserEmail():String?{
return auth.currentUser?.email
}
private fun setUserEmail(){
binding.tvUserEmail.text = "welcome " + getCurrentUserEmail()
}
}
Код: Выделить всё
class LoginActivity : AppCompatActivity() {
private lateinit var binding: ActivityLoginBinding
private lateinit var auth: FirebaseAuth
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityLoginBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
initData()
}
private fun initData(){
auth = FirebaseAuth.getInstance()
clickListener()
}
private fun clickListener(){
binding.llNewUser.setOnClickListener {
startActivity(Intent(this,RegisterActivity::class.java))
finish()
}
binding.btnLogin.setOnClickListener {
getUserData()
}
}
private fun getUserData(){
val email = binding.etEmail.text.toString()
val password = binding.etPassword.text.toString()
if (email.isNotEmpty() && password.isNotEmpty()){
authUser(email,password)
}else{
Toast.makeText(this,"All inputs required ...",Toast.LENGTH_LONG).show()
}
}
private fun authUser(email: String, password: String){
auth.signInWithEmailAndPassword(email,password)
.addOnCompleteListener {
checkResult(it.isSuccessful)
}
}
private fun checkResult(isSuccess: Boolean){
if (isSuccess){
startActivity(Intent(this,DashbordActivity::class.java))
finish()
}else{
Toast.makeText(this,"Authentication failed ...",Toast.LENGTH_LONG).show()
}
}
}
Код: Выделить всё
class RegisterActivity : AppCompatActivity() {
private lateinit var auth: FirebaseAuth
private lateinit var binding: ActivityRegisterBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
auth = FirebaseAuth.getInstance()
binding = ActivityRegisterBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
initData()
}
private fun initData(){
auth = FirebaseAuth.getInstance()
clickListener()
}
private fun clickListener(){
binding.btnRegister.setOnClickListener {
createUser()
}
binding.llHaveAccount.setOnClickListener {
}
}
private fun createUser(){
val email = binding.etEmail.text.toString()
val password = binding.etPassword.text.toString()
val cPassword = binding.etcPassword.text.toString()
if (email.isNotEmpty() && password.isNotEmpty() && cPassword.isNotEmpty()){
if (password == cPassword){
saveUser(email,password)
}else{
Toast.makeText(this,"Password mismatch",Toast.LENGTH_LONG).show()
}
}else{
Toast.makeText(this,"All inputs required",Toast.LENGTH_LONG).show()
}
}
private fun saveUser(email: String, password: String){
auth.createUserWithEmailAndPassword(email,password)
.addOnCompleteListener {
checkResults(it.isSuccessful)
}
}
private fun checkResults(isSuccess: Boolean){
if (isSuccess){
startActivity(Intent(this,LoginActivity::class.java))
finish()
}else{
Toast.makeText(this,"Create to create your account",Toast.LENGTH_LONG).show()
}
}
}
спасибо тем, кто мне помог

Подробнее здесь: https://stackoverflow.com/questions/784 ... when-i-clo