0

我想将现有的 Google Sign-In API Google Sign-In API迁移到Google Identity Service,但是,当尚未添加 Google 帐户时,Google Identity Service 会返回“16:找不到匹配的凭据”。

这是重现的步骤:

  1. 确保没有 Google 帐户设置,设置 -> 帐户: 在此处输入图像描述
  2. 使用以下代码请求 Google 登录:
SignInClient client = Identity.getSignInClient(getContext());

       BeginSignInRequest.GoogleIdTokenRequestOptions.Builder builder = BeginSignInRequest.GoogleIdTokenRequestOptions.builder()
               .setSupported(true)
               // Your server's client ID, not your Android client ID.
               .setServerClientId(clientId)
               .setFilterByAuthorizedAccounts(false);


       BeginSignInRequest signInRequest = BeginSignInRequest.builder()
               .setGoogleIdTokenRequestOptions(builder.build())
               .build();

       client.beginSignIn(signInRequest)
               .addOnSuccessListener(getActivity(), result -> {
                   try {
                       startIntentSenderForResult(
                               result.getPendingIntent().getIntentSender(), RC_SIGN_IN,
                               null, 0, 0, 0, null);
                   } catch (IntentSender.SendIntentException e) {
                       //handle error
                   }
               })
               .addOnFailureListener(getActivity(), e -> {
                   // No saved credentials found. Launch the One Tap sign-up flow, or
                   // do nothing and continue presenting the signed-out UI.
               });
  1. 得到 16:找不到匹配的凭据

通过使用旧界面Google Sign-In API,它按预期工作,它创建了 Google 帐户并登录用户。此外,当帐户管理器中有 Google 帐户时, Google 身份服务将起作用。

4

0 回答 0