Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android studio Android Firebase验证Google失败代码=10仅在手机上_Android Studio_Firebase Authentication - Fatal编程技术网

Android studio Android Firebase验证Google失败代码=10仅在手机上

Android studio Android Firebase验证Google失败代码=10仅在手机上,android-studio,firebase-authentication,Android Studio,Firebase Authentication,我一直在为android制作一个应用程序,并在直接使用模拟器和手机时测试google登录是否正常。但是,当我“生成签名包/apk”并在同一部手机或任何其他手机上安装该应用程序时,我会出现以下错误: D/~google~: signInResult:failed code=10 这种情况发生在以下方法中: private void handleSignInResult(Task<GoogleSignInAccount> completedTask) { try {

我一直在为android制作一个应用程序,并在直接使用模拟器和手机时测试google登录是否正常。但是,当我“生成签名包/apk”并在同一部手机或任何其他手机上安装该应用程序时,我会出现以下错误:

D/~google~: signInResult:failed code=10
这种情况发生在以下方法中:

private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
        try {
            GoogleSignInAccount account = completedTask.getResult(ApiException.class);
            // Signed in successfully, show authenticated UI.
            Log.d("~google~","successful google login");
            isLoginSuccessful = true;
            firebaseAuthWithGoogle(account.getIdToken());
        } catch (ApiException e) {
            // The ApiException status code indicates the detailed failure reason.
            // Please refer to the GoogleSignInStatusCodes class reference for more information.
            Log.d("~google~", "signInResult:failed code=" + e.getStatusCode());
        }
    }
private void handleSignInResult(任务完成任务){
试一试{
GoogleSignInAccount account=completedTask.getResult(ApiException.class);
//成功登录,显示已验证的UI。
Log.d(“~google~”,“谷歌登录成功”);
IsLoginSucessful=true;
firebaseAuthWithGoogle(account.getIdToken());
}捕获(APIE){
//ApiException状态代码表示详细的故障原因。
//有关更多信息,请参阅GoogleSignInstationCodes类参考。
Log.d(“~google~”,“signInResult:failed code=“+e.getStatusCode());
}
}

我一直在寻找这个答案,但我没有找到一个一致的解决方案,具体到我观察到的行为。

我不想回答我自己的问题,但因为我找不到解决我问题的完整解决方案,我想试着分享对我有用的东西

首先,我一直看到很多答案表明缺少SHA1或SHA1密钥不匹配,但对于那些不知道(至少截至目前为止)的人来说,这就是安全哈希算法。它基本上是一长串十六进制代码,即
FF:AC:00:33:22:03:…

开发时会生成两个不同的SHA1键:一个用于“调试”,另一个用于“发布”。通过生成签名的apk,我可以找到我的SHA1:Build>Generate signed apk

选择APK,然后选择下一步

如果您以前这样做过,那么您应该已经拥有密钥存储路径、密钥存储密码、密钥别名和密钥密码。如果不确定是否创建它们,请单击下一步

注意:复制密钥存储路径和别名,并将其临时粘贴到某个位置。记住你的密码

现在选择释放

然后,在终端,我对版本SHA1运行以下命令:
keytool-list-v-keystore-alias密钥别名

注意:您可能需要输入密码

现在,您可以进入firebase验证,方法是转到应用程序,单击设置(齿轮图标)并转到项目设置。滚动到“常规”选项卡的底部,单击“添加指纹”并将SHA1键粘贴到中,添加释放SHA1键

我真的希望这对将来的人有所帮助

注意:我使用的是Android Studio版本4.1.3


您是否在Firebase中输入了SHA-1指纹?是的,一旦输入,我就能够在模拟器上验证登录。我想这可能包含了你的答案。这是否回答了你的问题?它看起来像是谷歌控制台和android studio之间的SHA1匹配,但它确实显示了“调试”。