将firebase密码用户与facebook用户链接

时间:2017-07-02 15:20:21

标签: swift facebook firebase firebase-authentication

我已成功使用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进行身份验证。链接帐户时,不确定为什么这些属性为零。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我假设您首先使用电子邮件/密码注册用户,然后将Facebook链接到他们的帐户。 Firebase Auth后端不会将Facebook个人资料数据复制到顶级displayNamephotoURL。 但是,解决方案非常简单,您可以在链接后,从Facebook currentUser.providerData[indexOfFacebook]复制Facebook displayName和photoURL,并使用currentUser.createProfileChangeRequest()更新displayNamephotoURL on currentUser。