我在我的应用中使用了google auth,但无法正常工作。我目前的错误是
com.google.android.gms.common.api.ApiException:10: com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(未知来源) 位于com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(未知来源) 在br.com.etc.login.LoginActivity.onActivityResult(LoginActivity.kt:123)
我的LoginActivity:
class LoginActivity : AppCompatActivity() {
private var googleSignInClient: GoogleSignInClient? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestIdToken(getString(R.string.google_client_id))
.build()
googleSignInClient = GoogleSignIn.getClient(this, gso)
bt_login_google.onClick {
val signInIntent = googleSignInClient!!.signInIntent
startActivityForResult(signInIntent, RC_SIGN_IN)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RC_SIGN_IN) {
val task = GoogleSignIn.getSignedInAccountFromIntent(data)
handleSignInResult(task)
}
}
private fun handleSignInResult(completedTask: Task<GoogleSignInAccount>) {
try {
val account = completedTask.getResult(ApiException::class.java)
vm.loginGoogle(account?.idToken ?: "")
} catch (e: ApiException) {
Snackbar.make((findViewById(android.R.id.content)), R.string.error_generic, Snackbar.LENGTH_SHORT)
.show()
Timber.e(e)
}
}
}
我正在从Gradle> App>任务> android> signinReport获取SHA1
我将我的SHA1添加到https://console.developers.google.com/apis/credentials中,如下所示:
我的(R.string.google_client_id)是客户端ID
因此,我进入了我的Firebase项目(仅用于分析),进入了项目设置并添加了SHA1。我还添加了一封支持电子邮件。 我下载了google-settings.json并添加到了我的项目中。 IDk如果重要但我的应用未发布,则我没有Google开发者帐户。
我知道这是一个常见问题,但是我尝试了所有可能想到的问题,但仍然遇到这个问题。
答案 0 :(得分:0)
您应该在 OAuth 2.0 客户端 ID 下生成一个 Web 客户端 ID,而不是使用 Android 客户端 ID