无法在Google控制台中创建凭据以进行登录集成

时间:2018-04-04 06:37:22

标签: android firebase firebase-authentication google-signin

我使用firebase开发了一个简单的Android应用程序,并已登录谷歌设施。一切都很好,直到我决定创建新的签名APK。在使用调试密钥时,我能够正确创建Google凭据,它创建了android和Web客户端ID,如屏幕截图所示 Credentials screenshot with debug key

根据google文档,我们需要在创建GoogleSignInOptions对象时传递Web客户端ID。现在我决定创建实际签名的APK。它生成了新的SHA1指纹。当我尝试使用这个新的SHA1指纹创建凭据时,它只是创建Android客户端ID而不是Web客户端ID,如此屏幕截图所示 Credentials screenshot with release fingerprint

我的问题是,如何使用新密钥创建新凭据,因为登录失败了这个Android客户端ID?

解决方案:

我们可以通过创建新的Google控制台项目来解决这个问题,或者只是通过从控制台凭据屏幕更新现有项目的签名来突出显示here

1 个答案:

答案 0 :(得分:0)

据我所知,您不能在google developer api控制台上拥有2个与相同包名相关联的应用程序。

转到:https://developers.google.com/identity/sign-in/android/start-integrating并向下滚动到"配置项目"按钮。

通过向导创建新应用程序。作为替代方案,您可以通过https://console.developers.google.com/apis/credentials

执行此操作

此时您将需要您的应用程序包名称和调试/生产签名密钥SHA-1。找到用于签署应用程序的密钥,并通过终端使用:

keytool -exportcert -alias key_alias -keypass key_pass -keystore location/file.jks -storepass store_password -file myKey.crt -rfc

接下来是:

keytool -printcert myKey.crt

这会将所有哈希值打印到终端,包括SHA-1,然后您可以将其复制到我们上面提到的向导中。

您正在寻找类似:0C:F5:85:40:F3:1B:42:A2:EB:DC:FD:CA:12:6F:G5:3D:0B:3C:32:21

的内容

确保在不再使用/需要它时删除myKey.crt ...

注意:为了获得调试构建哈希值,您不需要使用keytool。只需在Android工作室中打开gradle选项卡 - >任务 - > android - > signedReport并双击它并打开gradle控制台输出并搜索SHA-1

向导创建了您的新凭据后,应该同时包含OAuth客户端和Web客户端,您可以下载credentials.json并将其放在您的应用程序文件夹中

AppName/app/credentials.json

如果您有调试凭据,它们将无法在发布的签名版本上运行,反之亦然。我最近遇到了这个问题并花了很多时间,所以如果这可以帮助别人,我会非常高兴:)