There is no problem in signing in and signing out. But when I try to sign in again, it automatically login in to the account which i sign in previously. I am trying to switch to other google accounts after signing out. Here is my codes.
This is signing in code
import android.app.Activity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import com.google.android.gms.auth.api.signin.GoogleSignIn
import com.google.android.gms.auth.api.signin.GoogleSignInAccount
import com.google.android.gms.auth.api.signin.GoogleSignInClient
import com.google.android.gms.auth.api.signin.GoogleSignInOptions
import com.google.android.gms.tasks.Task
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.GoogleAuthProvider
class MainActivity : AppCompatActivity() {
private lateinit var auth : FirebaseAuth
private lateinit var googleSignInClient : GoogleSignInClient
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
auth = FirebaseAuth.getInstance()
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build()
googleSignInClient = GoogleSignIn.getClient(this , gso)
findViewById<Button>(R.id.gSignInBtn).setOnClickListener {
signInGoogle()
}
}
private fun signInGoogle(){
val signInIntent = googleSignInClient.signInIntent
launcher.launch(signInIntent)
}
private val launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){
result ->
if (result.resultCode == Activity.RESULT_OK){
val task = GoogleSignIn.getSignedInAccountFromIntent(result.data)
handleResults(task)
}
}
private fun handleResults(task: Task<GoogleSignInAccount>) {
if (task.isSuccessful){
val account : GoogleSignInAccount? = task.result
if (account != null){
updateUI(account)
}
}else{
Toast.makeText(this, task.exception.toString() , Toast.LENGTH_SHORT).show()
}
}
private fun updateUI(account: GoogleSignInAccount) {
val credential = GoogleAuthProvider.getCredential(account.idToken , null)
auth.signInWithCredential(credential).addOnCompleteListener {
if (it.isSuccessful){
val intent = Intent(this , ProfileActivity::class.java)
intent.putExtra("email" , account.email)
intent.putExtra("name" , account.displayName)
startActivity(intent)
}else{
Toast.makeText(this, it.exception.toString() , Toast.LENGTH_SHORT).show()
}
}
}
}
what should i do to disconnect the current google account and sign in with different account. I tried delete the user in Firebase console, but it just auto sign in with the same account.