iOS Firebase - Facebook authWithOAuthProvider返回不正确的uid

时间:2016-06-07 04:46:45

标签: ios firebase firebase-authentication facebook-login facebook-authentication

我在我的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)
                }
            })
        }
    })
}

1 个答案:

答案 0 :(得分:0)

发现尽管由authWithOAuthProvider打印的uid与auth仪表板中的uid不同,authWithOAuthProvider每次打印相同的一个,因此保存和检索用户数据实际上是有效的,它是' s只是因为某些奇怪的原因而出现在该用户的身份验证仪表板中的另一个uid。