我正在开发一个Android应用程序,并通过Firebase Auth实现了Google Login, 有时有效,有时无效. 但这不是因为代码本身,而是因为Google帐户提示的 Select 是显示 无论我做什么,它都会显示取消的结果代码:
以下是输出resultCode 0的代码:
mBinding.btnSignInGoogle.setOnClickListener {
signInGoogle()
}
private fun signInGoogle() {
val signInIntent = GoogleSignIn.getClient(
this,
GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id)).requestEmail().build()
).signInIntent
startForResult.launch(signInIntent)
}
startForResult =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
Log.i(TAG, "onActivityResult: ${result.resultCode}")
if (result.resultCode == Activity.RESULT_OK) {
val task = GoogleSignIn.getSignedInAccountFromIntent(result.data)
try {
val account = task.getResult(ApiException::class.java)!!
firebaseAuthWithGoogle(account.idToken!!)
} catch (e: ApiException) {
Log.w(TAG, "Google sign in failed", e)
}
} else {
// Handle the case where the result code is not RESULT_OK
Toast.makeText(this, "Google sign in was not completed.", Toast.LENGTH_SHORT).show()
}
}
Log Log.i(TAG, "onActivityResult: ${result.resultCode}")
的输出:
这对我来说没有任何意义,而且我不知道如何修复它,因为这是我无法判断的东西
以前有人遇到过这个问题吗? 如果是这样,你是如何解决的?