Firebase身份validation(使用自定义令牌,适用于Linkedin)返回一个没有电子邮件和没有数据的用户(仅限于uid)

我正在尝试使用Linkedin和Firebaselogin。 我在我的服务器上生成自定义令牌,我有我的私钥,我使用RS256,这是我的有效载荷:

"iss" : service_account_email "sub" : service_account_email "aud", "https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit" "iat", Date().timeIntervalSince1970 "exp", Date().timeIntervalSince1970.advanced(by: 3600) "uid", String.randomString(length:28) 

我创build令牌,将其发送回应用程序,从我做到这一点:

 Auth.auth().signIn(withCustomToken: token!, completion: { (user, error) in 

我没有收到错误和用户回来,所以令牌是有效的。 问题是用户没有价值(没有电子邮件,没有displayName等)。 唯一的是我设置的那个uid:String.randomString(length:28)

我如何检索用户的电子邮件和其他信息? 在我的LinkedIn帐户,我有一个显示名称,电子邮件,图片等,但没有什么。

谢谢

你必须手动设置。 Firebase身份validation具有更新个人资料(照片url和显示名称)以及电子邮件的API。 您可以将LinkedIn数据与自定义令牌一起发送到您的应用程序,使用自定义令牌login,然后使用自定义令牌用户更新个人资料和电子邮件。

顺便说一下,将LinkedIn ID设置为该用户的UID。 不要使用随机string。 否则,下次您使用LinkedInlogin时,同一用户将会映射到另一个用户。