[2020/04/21 Google アカウントを利用して Firebase にサインインする No4]
class GoogleAuthController(private val activity: AppCompatActivity) {
private var completed: (FirebaseUser) -> (Unit) = {}
fun startSignIn(completed: (FirebaseUser) -> (Unit)) {
this.completed = completed
val signInIntent = googleSignInClient.signInIntent
activity.startActivityForResult(signInIntent, RC_SIGN_IN)
}
fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
︙
val credential = GoogleAuthProvider.getCredential(account.idToken, null)
firebaseAuth.signInWithCredential(credential).addOnCompleteListener(activity) { task ->
if (!task.isSuccessful) {
return@addOnCompleteListener
}
if (firebaseAuth.currentUser == null) {
return@addOnCompleteListener
}
completed(firebaseAuth.currentUser!!)
}
}
}