Swift 重置Facebook登录
从现在起,在我的应用程序中,我有一个电子邮件/密码登录。在用户使用此方法登录后,我希望用户能够使用Facebook登录以访问他们的朋友。目前,我已经在我的应用程序中内置了Facebook登录按钮。我的应用程序是基于用户的,因此有登录/注册。我将用户的数据存储到Firebase中。为了解释我的问题,我将使用person A和person B。假设person A登录到应用程序并使用Facebook登录(让我明确说明Facebook登录在应用程序登录之后)。然后,如果用户B尝试登录,然后使用Facebook登录,它会说用户B已经登录(到用户A的帐户)。如何为每个用户重置Facebook登录 这是我的登录按钮代码Swift 重置Facebook登录,swift,facebook,facebook-login,Swift,Facebook,Facebook Login,从现在起,在我的应用程序中,我有一个电子邮件/密码登录。在用户使用此方法登录后,我希望用户能够使用Facebook登录以访问他们的朋友。目前,我已经在我的应用程序中内置了Facebook登录按钮。我的应用程序是基于用户的,因此有登录/注册。我将用户的数据存储到Firebase中。为了解释我的问题,我将使用person A和person B。假设person A登录到应用程序并使用Facebook登录(让我明确说明Facebook登录在应用程序登录之后)。然后,如果用户B尝试登录,然后使用Face
struct UserService {
static func create(_ firUser: FIRUser, username: String, completion: @escaping (User?) -> Void) {
let userAttrs = ["username": username]
let ref = Database.database().reference().child("users").child(firUser.uid)
ref.setValue(userAttrs) { (error, ref) in
if let error = error {
assertionFailure(error.localizedDescription)
return completion(nil)
}
ref.observeSingleEvent(of: .value, with: { (snapshot) in
let user = User(snapshot: snapshot)
completion(user)
})
}
}
static func createFacebookID(_ firUser: FIRUser, facebookID: String, completion: @escaping (User?) -> Void) {
let userAttrs = ["facebookID": facebookID]
let ref = Database.database().reference().child("users").child(firUser.uid).childByAutoId();
ref.setValue(userAttrs) { (error, ref) in
if let error = error {
assertionFailure(error.localizedDescription)
return completion(nil)
}
ref.observeSingleEvent(of: .value, with: { (snapshot) in
let user = User(snapshot: snapshot)
completion(user)
})
}
}
}
这是另一个类中的createFacebookID函数
static func createFacebookID(_ firUser: FIRUser, facebookID: String, completion: @escaping (User?) -> Void) {
let userAttrs = ["facebookID": facebookID]
let ref = Database.database().reference().child("users").child(firUser.uid).childByAutoId();
ref.setValue(userAttrs) { (error, ref) in
if let error = error {
assertionFailure(error.localizedDescription)
return completion(nil)
}
ref.observeSingleEvent(of: .value, with: { (snapshot) in
let user = User(snapshot: snapshot)
completion(user)
})
}
}
如果您需要更多信息,请随时询问。提前感谢您抽出时间来帮助我 这是SDK中的一个常见错误,在其他地方也有讨论。解决方案是使用: fbLoginManager.loginBehavior=.web