【发布时间】:2020-05-11 10:26:30
【问题描述】:
我目前正在使用 Firebase 身份验证注册/登录我的应用。 我有 Facebook 注册/登录和 Google 注册/登录的自定义按钮。
例如,Facebook 注册/登录按钮的代码是
@objc private func performFacebookLogin(_ sender: UIButton) {
let fbLoginManager : LoginManager = LoginManager()
fbLoginManager.logIn(permissions: ["email"], from: self) { (result, error) -> Void in
if let error = error {
print(error)
} else {
if result == nil {
print("no result!")
return
}
if AccessToken.current == nil {
print("no token")
return
}
DispatchQueue.main.async {
ThirdPartySignupViewController.push(fromVC: self, method: .facebook)
}
}
}
}
如果用户尚未使用此 Facebook 帐户在应用中创建帐户,这会将用户带到另一个视图控制器以向他们的帐户添加其他信息。
但是,我找不到任何方法来确定 Facebook 帐户以前是否曾用于应用程序中的帐户,在这种情况下,我只想让用户登录并将他们带到主屏幕。有没有办法做到这一点?
我已经尝试了signIn(with:) 方法,希望如果应用程序中没有具有此 Facebook 帐户凭据的帐户,它会返回错误,但这将不起作用,因为这最终会创建一个新帐户,如果该 Facebook 帐户之前未用于创建帐户。
let credential = FacebookAuthProvider.credential(withAccessToken: AccessToken.current!.tokenString)
Auth.auth().signIn(with: credential) { (authResult, error) in
//check if I get an error if the Facebook account has not been used
}
(编辑)所需的流程是 1.使用 Facebook/Google 登录 → 2.输入其他信息 → 3.在 Firebase 身份验证上创建帐户。
【问题讨论】:
标签: ios swift facebook firebase firebase-authentication