0

我在我的iOS应用程序中使用Facebook登录与Firebase,但我无法将用户的数据保存到数据库,因为authWithOAuthProvider似乎是从我可以返回一个differend uid字符串请在仪表板中查看。这是一个已知的问题?这里是我的代码:iOS的Firebase - Facebook的authWithOAuthProvider返回不正确的用户ID

@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

请更新一些相关的截图,以显示确切的情况。 – Shubhank

回答

0

发现,虽然通过authWithOAuthProvider打印的uid是从一个在身份验证仪表盘不同,authWithOAuthProvider打印同一个每次都这样保存和检索用户数据的实际工作,它只是一个不同的uid出于某种奇怪的原因出现在该用户的身份验证仪表板中。