我在我的ios应用程序中使用带有firebase的Facebook登录,但是我无法将用户的数据保存到数据库,因为authWithOAuthProvider似乎从我在仪表板中看到的那个字符串返回了一个不同的uid字符串。这是一个已知的问题?这是我的代码:
@IBAction func tappedFacebookLogin(sender: AnyObject) {
User.sharedModel.facebookUser = true
let loginManager = FBSDKLoginManager()
let permissions = ["public_profile", "email"]
loginManager.logInWithReadPermissions(permissions, fromViewController: self, handler: { fbResult, fbError in
if fbError != nil {
// error in login
print("fbError: \(fbError.code)")
}
else if fbResult.isCancelled {
// cancelled login
print("cancelled facebook login")
}
else {
// fb logged in
self.startProgressHud()
let accessToken = FBSDKAccessToken.currentAccessToken().tokenString
FirebaseManager.sharedRootRef.authWithOAuthProvider("facebook", token: accessToken, withCompletionBlock: { error, authData in
if error != nil {
self.handleFirebaseError(error)
}
else {
// firebase logged in
print(authData.uid)
self.getUserDataAndLogin(authData.uid)
}
})
}
})
}
答案 0 :(得分:0)
发现尽管由authWithOAuthProvider
打印的uid与auth仪表板中的uid不同,authWithOAuthProvider
每次打印相同的一个,因此保存和检索用户数据实际上是有效的,它是' s只是因为某些奇怪的原因而出现在该用户的身份验证仪表板中的另一个uid。