【发布时间】:2019-03-27 14:49:12
【问题描述】:
我正在尝试链接 Facebook 和 Google。所以,场景是这样的:
我已经通过 Google 进行了身份验证。所以,现在我登录 Facebook,拥有与谷歌之前使用的相同的电子邮件 ID。所以,我得到了 account Exists with a different credential 的错误。而且,我这样做了:
func fetchUserInfo()
{
Auth.auth().signInAndRetrieveData(with:FacebookAuthProvider.credential(withAccessToken: (FBSDKAccessToken.current().tokenString)!), completion: { (result, error) in
if let error = AuthErrorCode.init(rawValue: error!._code)
{
switch error
{
case .accountExistsWithDifferentCredential :
let credential = FacebookAuthProvider.credential(withAccessToken: (FBSDKAccessToken.current()?.tokenString)!)
Auth.auth().currentUser?.linkAndRetrieveData(with: credential, completion: { (result, error) in
if let error = error
{
print("Unable to link Facebook Account", error.localizedDescription)
}
else
{
NavigationHelper.shared.moveToHome(fromVC: self)
}
})
default: break
}
}
else
{
GeneralHelper.shared.keepLoggedIn()
if let currentUser = Auth.auth().currentUser
{
print(currentUser.email!)
}
NavigationHelper.shared.moveToHome(fromVC: self)
}
})
}
这里的 Firebase 文档说我们只需要链接 currentUser 并检索数据。但是,我面临的问题是currentUser 始终为零。那么,如何获取当前用户呢?几个月前我已经尝试过了,然后我可以链接 Facebook、谷歌和电子邮件。是否,我需要 signInAndRetrieve 来自 Google 的数据才能获得 currentUser?
【问题讨论】:
-
您需要先将用户登录到 Google,然后将 Facebook 凭据链接到它,以便合并两个帐户。下次用户可以使用其中任何一个登录时。
-
是的,我已经这样做并关联了帐户。
标签: ios iphone swift firebase firebase-authentication