android - Firebase 登录 : GoogleSignIn onActivityResult() returns RESULT_CANCELED with Result error 12500

标签 android firebase google-signin sha1

好的,我知道这个问题已经被问过多次,但由于某种原因这个错误不断发生,情况是这样的:

  • 创建了 PROD firebase 项目,在运行良好的 Android 项目(Android 项目路径:app/google-services.json)中插入了 google-services.json,包含:

    1. 两个 SHA1 key - 来自 .android/debug.keystore(目前)和自定义发布 keystore (2 个基于这些 key 的 Oauth2 Android 客户端 ID)
    2. 用于 Google 登录的 Oauth2 Web 客户端 ID - 我已将它们放入 Firebase Console/Authentication/Providers/Google Sign In/Web SDK Configuration
    3. Firebase 项目 ID 为 com.companyname.projectname 格式
  • 然后我创建了 DEV firebase 项目 (app/debug/google-services.json) 并完成了以下操作:

    1. 创建自定义调试 keystore ,导出 SHA1 并将其添加到 Firebase 项目中(该 keystore 用于签署调试)
    2. build.gradle 中,将此调试 keystore 分配给调试构建类型并且正在运行 - 它正在使用该 keystore 进行签名
    3. 创建新的 Oauth2 Web 客户端 ID 并以与 Google 登录提供商的 PROD 相同的方式插入它
    4. 此项目的 Firebase 项目 ID 是 com.companyname.projectname-dev(在构建类型调试中添加了应用程序后缀)

当我使用调试构建类型运行应用程序时,会发生以下情况:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestIdToken(getString(R.string.default_web_client_id))
        .requestEmail()
        .build();

 GoogleSignInClient googleSignInClient = GoogleSignIn.getClient(this, gso);

很好 - requestIdToken 是来自 DEV Firebase 项目的 Oauth2 Web 客户端 ID

BuildConfig.APPLICATION_ID 返回 DEV applicationId(带有 -dev 后缀)

但是当我转到 onActivityResult() 时,我从这个问题的标题中得到了什么 - RESULT_CANCELED + 12500 结果错误

有人遇到过同样的问题吗?

对于相当困惑的问题,我深表歉意,如有必要,我会添加更多信息。

注意:我曾尝试在 DEV 项目中使用 .android/debug.keystore SHA1,但我遇到了与上述相同的问题。

最佳答案

我首先尝试的是:

我想通过这个错误 ApiException: 12500 很久了。我尝试了一切:

  • 删除我的调试 keystore ,重新创建一个
  • 在 firebase 控制台上添加支持电子邮件
  • 更改插件版本
  • 在我的设备上更新谷歌

但是当我在浏览stackoverflow的时候,我找到了一个解决方案:

也许解决方案:

我去了这个页面 ( https://console.developers.google.com/apis/credentials ) 不要忘记在列表(左上角)中选择您的项目。然后继续“Oauth 同意屏幕”

我填写了几乎所有字段:应用程序 Logo 、电子邮件支持、应用程序主页链接、应用程序隐私政策链接(与 project.firebaseapp.com);我保存了。

enter image description here

现在正常了,我可以登录了。

希望对你有帮助

来源

感谢 Pranjal Gupta 的回答:Google Sign In error 12500

关于android - Firebase 登录 : GoogleSignIn onActivityResult() returns RESULT_CANCELED with Result error 12500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57012033/

相关文章:

android - Android 上的 Google 登录 - 访问 token

ios - 取消按钮在 iOS 的谷歌登录框架中不可见

android - 如何在 Unity 中使用 Google 帐户对用户进行身份验证?

android - 如何使用 Smack 了解 XMPP openfire 中的键入状态

android - 如何在 Android 中以编程方式更改方向

java - 在 Android 中创建单例 CountDownTimer

javascript - Firebase 云函数中的嵌套 HTTP 请求

android - 您可以增加 Android 设备上的振动器强度吗?

swift - Firebase 2.0 - 从 FIRDataSnapshot 读取数据不起作用

javascript - Uncaught Error : No Storage Bucket defined in Firebase Options.(网络)