1

这是我从 Google Developers 页面遵循的代码

signInRequest = BeginSignInRequest.builder()
    .setPasswordRequestOptions(BeginSignInRequest.PasswordRequestOptions.builder()
        .setSupported(true)
        .build())
    .setGoogleIdTokenRequestOptions(BeginSignInRequest.GoogleIdTokenRequestOptions.builder()
        .setSupported(true)
        // Your server's client ID, not your Android client ID.
        .setServerClientId(getString(R.string.server_id))
        // Only show accounts previously used to sign in.
        .setFilterByAuthorizedAccounts(true)
        .build())
    .build();

oneTapClient.beginSignIn(signInRequest)
    .addOnSuccessListener(this, new OnSuccessListener<BeginSignInResult>() {
        @Override
        public void onSuccess(BeginSignInResult result) {
            try {
                startIntentSenderForResult(
                    result.getPendingIntent().getIntentSender(), REQ_ONE_TAP, null, 0, 0, 0);
            } catch (IntentSender.SendIntentException e) {
                Log.e(TAG, "Couldn't start One Tap UI: " + e.getLocalizedMessage());
            }
        }
    })
    .addOnFailureListener(this, new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            // No saved credentials found. Launch the One Tap sign-up flow, or
            // do nothing and continue presenting the signed-out UI.
            Log.d(TAG, e.getLocalizedMessage());
        }
    });

我正在我的 Android 应用程序中实现一键登录和注册,并且我在 Google API 控制台中创建了一个项目,并在此处提到了客户端 ID,但上面的代码不起作用。

我已经搜索了示例项目但不可用,并且分步代码流的示例 YouTube 视频也不可用。接下来我可以尝试什么?

4

1 回答 1

2

日志会有所帮助,虽然我猜这是例外:

未找到匹配的凭据

在代码更改中

.setFilterByAuthorizedAccounts(true)

.setFilterByAuthorizedAccounts(false)
于 2020-09-04T19:39:07.483 回答