Google 在 Android 上使用 firebase 登录不工作

Google signin with firebase on Android not working

我的应用程序已经发布了一段时间,Google 到目前为止登录工作正常。它只是突然停止工作。我检查了所有内容,包括 SHA-1 指纹、client_id 等

经过测试,我发现结果 activity 不 return RESULT_OK。

private lateinit var googleSignInClient: GoogleSignInClient

private var googleSigninLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){

    if(it.resultCode == RESULT_OK){
        val task = GoogleSignIn.getSignedInAccountFromIntent(it.data)
        try {
            val account = task.getResult(ApiException::class.java)
            account.idToken?.let {token->
                firebaseAuthWithGoogle(token)
            }

        } catch (e: ApiException) {
            Log.d("LOGIN_DEBUG", e.message.toString())
        }
    }else{
        //This is where the code reaches and I am getting RESULT_CODE 0 in the logs
        toast(this@MainActivity, getString(R.string.there_was_an_error))
        Log.d("LOGIN_DEBUG", it.resultCode.toString())
    }
}


val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(getString(R.string.default_web_client_id))
            .requestEmail()
            .build()

    googleSignInClient = GoogleSignIn.getClient(this, gso)


google_signin.setOnClickListener {
        val signInIntent = googleSignInClient.signInIntent

        googleSigninLauncher.launch(signInIntent)
        toast(this@MainActivity, resources.getString(R.string.please_wait))
    }

我看了很多问题,但 none 的解决方案对我有用。 非常感谢任何帮助。

如本文所述

Try checking if you have the correct OAuth key properly configured for your app. According to this related , the OP noticed that the Auth key is also associated with other project that create the issue.

此外,请确保您在测试时已为 APK 签名。阅读 documentation 以签署您的应用程序。

你能检查一下你的 google-services.json 文件吗?

检查您发布的 SHA-1 是否存在。

如果游戏控制台生成签名密钥,则必须在 firebase 中添加此密钥的 SHA-1,然后再次下载 google 服务文件

您可以在 Play 控制台的应用页面中找到它(发布 -> 设置 -> 应用完整性)

如果您使用签名密钥发布,则从 android studio 生成 (您也可以在游戏控制台中找到 SHA-1)并确保将此 SHA-1 添加到 firestore然后重新下载文件