Firebase Gmail一键登录中SignInCredential.getId()是否始终为邮箱?
关于Google Sign-In中
credential.getId()返回值的说明 - 结论:
credential.getId()并不始终返回邮箱地址 - 实际返回值:它返回的是用户Google账号的唯一永久ID(对应OpenID Connect中的
sub字段),是一串固定不变的字符串,和邮箱没有必然关联。 - 为什么你当前看到的是邮箱?部分场景下(比如用邮箱注册的Google账号),这个ID可能和邮箱字符串一致,但这只是巧合而非固定规则。如果用户是用手机号注册的Google账号,
getId()返回的会是一串与手机号无关的ID。 - 正确获取邮箱的方法:若需要获取用户邮箱地址,应调用
credential.getEmail(),这个API专门用于返回邮箱,但前提是你发起Google Sign-In请求时已申请了邮箱权限(Scopes.EMAIL),否则可能返回null。
内容的提问来源于stack exchange,提问作者Rohaitas Tanoli
相关产品推荐
相关产品推荐

