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"。我更改了它,最终我的应用程序运行了。
希望这对某人有所帮助。
快乐代码!
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"。我更改了它,最终我的应用程序运行了。
希望这对某人有所帮助。
快乐代码!