使用Credential Manager实现Google登录遇“无效用户”问题求助
问题:Credential Manager实现Google登录时已登录账户提示“无效用户”
问题现象
- 首次登录Google账户可成功,后续使用该账户登录时提示“无效用户”,仅从未登录过的新账户可正常登录。
日志与代码对比
相关代码片段
when (credential) { // GoogleIdToken credential is CustomCredential -> { if (credential.type == GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL) { try { val googleIdTokenCredential = GoogleIdTokenCredential.createFrom(credential.data) Log.e("LOGIN", "googleIdTokenCredential: ${googleIdTokenCredential}") Log.e("LOGIN", "Google ID : ${googleIdTokenCredential.id}") Log.e("LOGIN", "Display Name: ${googleIdTokenCredential.displayName}") Log.e("LOGIN", "Email: ${googleIdTokenCredential.id}")
新账户登录日志(正常)
Google ID : testaccount1@gmail.com Display Name: Test Name Email: testaccount1@gmail.com
已登录账户登录日志(异常)
Google ID : 105392828937394874235 Display Name: null Email: 105392828937394874235
SHA-1密钥操作过程
最初在Firebase控制台注册项目、Google Cloud控制台创建OAuth 2.0客户端ID时,使用的是以B1:98开头的SHA-1值。之后误丢失当时生成的debug.keystore,重新创建新的debug.keystore,并在两个控制台更新新的SHA-1值后重新构建应用:
- 测试账户A(SHA-1变更前登录过)登录时报“无效用户”,账户B、C(未登录过)可多次正常登录。
- 次日恢复原debug.keystore并重构应用后,A、B、C均报错,仅从未登录过的新账户D可正常获取数据。
已重新下载并应用google-services.json文件,且多次确认API密钥无问题。
疑问
SHA-1操作失误是否会导致已登录账户无法正常获取邮箱和昵称?该如何解决此问题?
内容的提问来源于stack exchange,提问作者Julian
相关产品推荐
相关产品推荐

