具有 GoogleId 的 CredentialManager 始终“取消”

Maj*_*eee 5 android kotlin credential-manager android-jetpack-compose

无论我以哪种方式实现组合凭据管理器,我都会遇到异常 GetCredentialCancellationException: activity is canceled by the user.

经理会显示一个与我的 Google 帐户的对话框,我选择一个,然后出现一个“同意屏幕”,其中带有“继续使用我”按钮。单击该按钮后,我得到了上面的异常。

我不知道我做错了什么。

我的图书馆:
androidx.credentials.credentials:credentials:1.2.0-beta03
androidx.credentials.credentials:credentials-play-services-auth:1.2.0-beta03
com.google.android.gms:play-services-auth:20.7.0

基本演示代码:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        WindowCompat.setDecorFitsSystemWindows(window, false)
        super.onCreate(savedInstanceState)

        lifecycleScope.launch {
            CredentialManager.create(this@MainActivity.applicationContext).getCredential(
                context = this@MainActivity,
                request = GetCredentialRequest(
                    listOf(
                        GetGoogleIdOption.Builder()
                            .setFilterByAuthorizedAccounts(false)
                            .setAutoSelectEnabled(false)
                            .setServerClientId("secret-id")
                            .build(),
                    )
                ),
            ).credential
        }

        setContent {
            Text("DEMO")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Maj*_*eee 8

好吧,经过x天终于弄清楚了。异常是错误的,与问题无关。

我的客户 ID 错误。它不应该是 Android 客户端 ID,而是WebApplication客户端 ID。

我在检查 google 通过 firebase 登录是否有效后发现了这一点,并且在步骤 1 的 b 点中清楚地写着。https://firebase.google.com/docs/auth/android/google-signin#authenticate_with_firebase