GoogleSignIn ApiException: 10 with GoogleAuth not firebase (App with flavors)

GoogleSignIn ApiException: 10 with GoogleAuth not firebase (App with flavours)

UPDATE: I forgot to say that the my app has multiple flavours.

我正在尝试使用 Google Aut(而不是 firebase)登录我的应用程序。所以,首先,我正在使用这个依赖项:

implementation 'com.google.android.gms:play-services-auth:15.0.0'

该应用程序有点旧,因此他们使用旧的依赖项。

然后我使用此文档将 Google 登录集成到我的应用程序中:

我有这个方法,它在我的 activity:

中的 onCreate 上调用
public void createGoogleSignInOption() {
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .requestIdToken("abcd")
            .build();

    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
}

然后我有我的意图:

private void signIn() {
    Intent signInIntent = mGoogleSignInClient.getSignInIntent();
    startActivityForResult(signInIntent, 22);
}

在我的activity结果中,我得到了响应:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (callbackManager != null) {
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }

    if (requestCode == 22) {
        // The Task returned from this call is always completed, no need to attach
        // a listener.
        Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
        handleSignInResult(task);
    }
}

最后我根据文档有了这个方法

private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
    try {
        GoogleSignInAccount account = completedTask.getResult(ApiException.class);
    } catch (ApiException e) {
        Log.w("LOG", "signInResult:failed code=" + e.getStatusCode());
    }
}

我还在控制台中配置了项目,我有我的凭据,但没有任何效果。顺便说一句,我已经将我的 SHA1 添加到我的配置中,但仍然不起作用。

消息是 APIEXCEPTION 10。

有什么想法吗?我被困在这里两天了。

您遇到此问题是因为 SHA 密钥。您需要从您的系统生成 SHA 密钥,然后输入 console.then 即可解决问题。 您还可以从 android 工作室生成 SHA 密钥,

首先打开项目,然后点击位于垂直栏右侧的gradle, 然后 select 项目 -> 应用程序模块 -> 任务 -> android -> 签署报告。然后你得到 SHA 密钥.

好的,我终于找到了解决问题的方法。对于所有在您的 android 应用中使用风味的人。

YOU MUST PUT YOUR CURRENT FLAVOUR PACKAGE

例如,当我尝试配置项目时,我注册了包 "com.abcde.fg" 而不是 "dev.com.abcde.fg"。我更改了它,最终我的应用程序运行了。

希望这对某人有所帮助。

快乐代码!