我正在尝试添加谷歌登录到我的kotlin,但我得到了错误的"user_account“。它说“类型不匹配:推断的类型是GoogleSignInAccount?但GoogleSignInAccount是预期的”如何纠正这个错误?
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RC_SIGN_IN) {
val task: Task<GoogleSignInAccount> = GoogleSignIn.getSignedInAccountFromIntent(data)
try {
val user_account = task.getResult(ApiException::class.java)
firebaseAuthWithGoogle(user_account)
} catch (e: ApiException) {
Toast.makeText(this, "Google sign in failed:(", Toast.LENGTH_LONG).show()
}
}
}发布于 2019-04-15 00:49:04
GoogleSignIn.getSignedInAccountFromIntent是一个Java方法,所以它可以返回可以为空的对象,但指定了非空类型。因此,您应该将类型指定为Task<GoogleSignInAccount?>,或者使用一种可能的方法将对象强制转换为非空类型。
您可以阅读有关该here的更多信息。
发布于 2020-06-12 11:02:30
这可能是一个迟来的答案,但希望它能在未来帮助像我这样的Kotlin初学者。
我遇到了完全相同的错误,并按照以下部分进行了修改以修复它:
val user_account : GoogleSignInAccount? = task.getResult(ApiException::class.java)
firebaseAuthWithGoogle(user_account!!)有关null和"!!“的详细信息,请参阅Kotlin在线文档Null Safety。操作符。
https://stackoverflow.com/questions/55677077
复制相似问题