大佬教程收集整理的这篇文章主要介绍了Swift / Firebase:如何在创建帐户时将Facebook用户正确存储到Firebase数据库中?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我将updateChildValues放在正确的位置吗?它目前位于signInWithCredential中.我还必须执行FBSDKGraphrequest来获取我感兴趣的信息存储在我的firebase数据库中.
我的firebase的Auth选项卡显示身份验证正在运行:
但数据库没有更新:
func showLoginView() { let loginManager = FBSDKLoginManager() loginManager.logInWithReadPermissions(fbPermissions,fromViewController: self,handler: { (result:FBSDKLoginManagerLoginResult!,error:NSError!) -> Void in if ((error) != nil) { print("Error loggin in is \(error)") } else if (result.isCancelled) { print("The user cancelled loggin in") } else { // No error,No cancelling: // using the FBACcessToken,we get a Firebase token let credential = FIRFacebookauthprovider.credentialWithAccessToken(FBSDKAccessToken.currentAccessToken().tokenString) // using the credentials above,sign in to firebase to create a user session FIRAuth.auth()?.signInWithCredential(credential) { (user,error) in print("User logged in the firebase") // adding a reference to our firebase database let ref = FIRDatabase.database().referenceFromURL("https://project-12345.firebaseio.com/") // guard for user id guard let uid = user?.uid else { return } // create a child reference - uid will let us wrap each users data in a unique user id for later reference let usersReference = ref.child("users").child(uid) // performing the Facebook graph request to get the user data that just logged in so we can assign this stuff to our Firebase database: let graphrequest : FBSDKGraphrequest = FBSDKGraphrequest(graPHPath: "me",parameters: ["fields": "id,name,email"]) graphrequest.startWithCompletionHandler({ (connection,result,error) -> Void in if ((error) != nil) { // Process error print("Error: \(error)") } else { print("fetched user: \(result)") // Facebook users name: let userName:NSString = result.valueForKey("name") as! NSString self.usersName = userName print("User Name is: \(userName)") print("self.usersName is \(self.usersName)") // Facebook users email: let userEmail:NSString = result.valueForKey("email") as! NSString self.usersEmail = userEmail print("User Email is: \(userEmail)") print("self.usersEmail is \(self.usersEmail)") // Facebook users ID: let userID:NSString = result.valueForKey("id") as! NSString self.usersFacebookID = userID print("Users Facebook ID is: \(userID)") print("self.usersFacebookID is \(self.usersFacebookID)") } }) // set values for assignment in our Firebase database let values = ["name": self.usersName,"email": self.usersEmail,"facebookID": self.usersFacebookID] // update our databse by using the child database reference above called usersReference usersReference.updateChildValues(values,withCompletionBlock: { (err,ref) in // if there's an error in saving to our firebase database if err != nil { print(err) return } // no error,so it means we've saved the user into our firebase database successfully print("Save the user successfully into Firebase database") }) } } }) }
更新:
func showLoginView() { let loginManager = FBSDKLoginManager() loginManager.logInWithReadPermissions(fbPermissions,error) -> Void in if ((error) != nil) { // Process error print("Error: \(error)") } else { print("fetched user: \(result)") // Facebook users name: let userName:NSString = result.valueForKey("name") as! NSString self.usersName = userName print("User Name is: \(userName)") print("self.usersName is \(self.usersName)") // Facebook users email: let userEmail:NSString = result.valueForKey("email") as! NSString self.usersEmail = userEmail print("User Email is: \(userEmail)") print("self.usersEmail is \(self.usersEmail)") // Facebook users ID: let userID:NSString = result.valueForKey("id") as! NSString self.usersFacebookID = userID print("Users Facebook ID is: \(userID)") print("self.usersFacebookID is \(self.usersFacebookID)") //graphrequest.startWithCompletionHandler may not come BACk during serial //execution so you cAnnot assume that you will have date by the time it gets //to the let values = ["name": //By putTing it inside here it makes sure to update the date once it is //returned from the completionHandler // set values for assignment in our Firebase database let values = ["name": self.usersName,"facebookID": self.usersFacebookID] // update our databse by using the child database reference above called usersReference usersReference.updateChildValues(values,ref) in // if there's an error in saving to our firebase database if err != nil { print(err) return } // no error,so it means we've saved the user into our firebase database successfully print("Save the user successfully into Firebase database") }) } }) } } }) }
以上是大佬教程为你收集整理的Swift / Firebase:如何在创建帐户时将Facebook用户正确存储到Firebase数据库中?全部内容,希望文章能够帮你解决Swift / Firebase:如何在创建帐户时将Facebook用户正确存储到Firebase数据库中?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。