You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GIS SignInCredential无email字段,与官方文档说明不符如何解决?

问题归类结论

  • 该问题绝大多数属于个人操作错误,极小概率为特定历史版本SDK的兼容问题,官方文档描述不存在错误。
    出现该问题的核心原因是构建登录请求时未显式申请邮箱权限,Google身份服务默认不会返回用户隐私类字段,和文档描述的「申请对应权限后会返回对应字段」的逻辑一致。

无需调用People API获取用户email的方法

按以下步骤配置即可直接从SignInCredential对象中拿到邮箱:

  1. 构建登录请求时显式声明需要邮箱权限,示例代码如下:
// Java 示例
GetSignInIntentRequest signInRequest = GetSignInIntentRequest.builder()
    .setServerClientId("你的Google Cloud后台申请的Android客户端ID")
    .requestEmail() // 必须添加该行,显式要求返回用户邮箱
    .build();
// Kotlin 示例
val signInRequest = GetSignInIntentRequest.builder()
    .setServerClientId("你的Google Cloud后台申请的Android客户端ID")
    .requestEmail()
    .build()
  1. 登录成功后直接从返回的SignInCredential对象读取即可:
    注意你截图中没有展示的id字段就是用户的邮箱地址,不存在独立的email字段,读取代码如下:
val credential = Identity.getSignInClient(this).getSignInCredentialFromIntent(intent)
val userEmail = credential.id

SignInCredential无email字段示意图
如果按上述配置后仍无法获取邮箱,可先升级Google Identity Services SDK到最新稳定版再重试,排除历史版本SDK的bug影响。

内容的提问来源于stack exchange,提问作者Ondrej Karmazin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:45:05