我已成功使用Firebase实施电子邮件和Facebook登录身份验证。我现在想允许电子邮件用户将他们的帐户与Facebook链接。
我有以下代码:
let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
if let user = Auth.auth().currentUser {
user.link(with: credential, completion: { user, error in
//
})
}
链接有效,但返回的用户没有displayName也没有photoUrl。用户在完成块中返回或通过Auth.auth().currentUser
访问用户时。
用户确实拥有displayName和photoUrl,但直接通过Facebook进行身份验证。链接帐户时,不确定为什么这些属性为零。有任何想法吗?
答案 0 :(得分:0)
我假设您首先使用电子邮件/密码注册用户,然后将Facebook链接到他们的帐户。 Firebase Auth后端不会将Facebook个人资料数据复制到顶级displayName
和photoURL
。
但是,解决方案非常简单,您可以在链接后,从Facebook currentUser.providerData[indexOfFacebook]
复制Facebook displayName和photoURL,并使用currentUser.createProfileChangeRequest()
更新displayName
和photoURL
on currentUser。