防止 google 凭据保存在 android
prevent google credentials save in android
我正在使用 Firebase Google Authentication
服务。身份验证工作正常,但问题是当我使用 google 身份验证登录时,凭据被保存。所以每次注销后,我都无法选择用于登录的电子邮件。它直接让我登录到应用程序。所以当我想用另一个 Gmail 帐户登录时,这对我来说就成了一个问题。
实现凭据页面的代码。
google_sign_in_btn.setOnClickListener {
signIn()
}
...
private fun signIn() {
val signInIntent = mGoogleSignInClient.signInIntent
startActivityForResult(signInIntent, 234)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 234)
{
val task = GoogleSignIn.getSignedInAccountFromIntent(data)
try
{
val account = task.getResult(ApiException::class.java)
if (account != null) {
firebaseAuthWithGoogle(account)
}
}
catch (e:ApiException) {
}
}
}
您面临的问题是您没有从 Google 提供商处注销用户。仅从 Firebase 注销是不够的。如果您希望每次都弹出该弹出窗口,以便您可以选择要使用的电子邮件帐户,请同时退出 Google 和 Firebase:
googleSignInClient.signOut().addOnCompleteListener { /* ... /* }
FirebaseAuth.getInstance().signOut()
我正在使用 Firebase Google Authentication
服务。身份验证工作正常,但问题是当我使用 google 身份验证登录时,凭据被保存。所以每次注销后,我都无法选择用于登录的电子邮件。它直接让我登录到应用程序。所以当我想用另一个 Gmail 帐户登录时,这对我来说就成了一个问题。
实现凭据页面的代码。
google_sign_in_btn.setOnClickListener {
signIn()
}
...
private fun signIn() {
val signInIntent = mGoogleSignInClient.signInIntent
startActivityForResult(signInIntent, 234)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 234)
{
val task = GoogleSignIn.getSignedInAccountFromIntent(data)
try
{
val account = task.getResult(ApiException::class.java)
if (account != null) {
firebaseAuthWithGoogle(account)
}
}
catch (e:ApiException) {
}
}
}
您面临的问题是您没有从 Google 提供商处注销用户。仅从 Firebase 注销是不够的。如果您希望每次都弹出该弹出窗口,以便您可以选择要使用的电子邮件帐户,请同时退出 Google 和 Firebase:
googleSignInClient.signOut().addOnCompleteListener { /* ... /* }
FirebaseAuth.getInstance().signOut()