所以我设置了电子邮件/密码注册和登录 .
那很有效 . 我以为Firebase会照顾这个,但显然不是 . 在用户关闭应用程序后,我想在下次打开应用程序时登录 .
缺什么?
class LoginActivity : AppCompatActivity(){
lateinit var auth: FirebaseAuth
lateinit var user: FirebaseAuth
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
auth = FirebaseAuth.getInstance()
}
fun loginLoginClicked(view: View) {
// Perform login
val email = loginEmailTxt.text.toString()
val password = loginPasswordTxt.text.toString()
auth.signInWithEmailAndPassword(email, password)
.addOnSuccessListener {
finish()
}
.addOnFailureListener { exception ->
Log.e("Exception", "Could not sign in user - ${exception.localizedMessage}")
}
val loginIntent = Intent(this, MainActivity::class.java)
startActivity(loginIntent)
}
fun loginCreateClicked(view: View) {
// segue to the create user activity
val createIntent = Intent(this, SignUpActivity::class.java)
startActivity(createIntent)
}}
}
1 回答
Firebase身份验证会自动记住身份验证状态,因此在重新启动应用程序时仍会对用户进行身份验证 .
但是,如果
LoginActivity
是启动器活动,则需要检查用户是否在onCreate()
中进行了身份验证,然后将其重定向到MainActivity
(如果他们已经登录),例如:这将使用FirebaseAuth#getCurrentUser()方法,如果用户已登录,将返回FirebaseUser对象,如果未登录,则返回
null
.或者,您可以交换它,以便
MainActivity
是启动器活动,然后仅在用户未登录时显示您的LoginActivity
.