簡體   English   中英

在 Android 上使用 firebase 登錄 Google 無法正常工作

[英]Google signin with firebase on Android not working

我的應用程序已經發布了一段時間,到目前為止,Google 登錄工作正常。 它只是突然停止工作。 我檢查了所有內容,包括 SHA-1 指紋、client_id 等。

經過測試,我發現結果活動不會返回 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))
    }

我看過很多問題,但沒有一個解決方案對我有用。 任何幫助是極大的贊賞。

正如這個答案中提到的。

嘗試檢查您是否為您的應用正確配置了正確的 OAuth 密鑰。 根據這個相關的SO 帖子,OP 注意到 Auth 密鑰也與創建問題的其他項目相關聯。

此外,請確保您在測試時已簽署 APK。 閱讀 文檔以簽署您的應用程序。

您能否檢查一下您的 google-services.json 文件?

檢查您的發布 SHA-1 是否存在。

如果游戲控制台生成簽名密鑰,則必須在 firebase 中添加此密鑰的 SHA-1,然后再次下載 google 服務文件

您可以在游戲控制台的應用頁面中找到它(發布 -> 設置 -> 應用完整性)

如果您使用簽名密鑰發布,則從 android 工作室生成簽名報告(您也可以在游戲控制台中找到 SHA-1)並確保將此 SHA-1 添加到 Firestore,然后再次下載文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM