infirebase 2.5.1
, used this, , working:
@ibaction func facebooklogindidtouch(sender: anyobject) { let facebooklogin = fbsdkloginmanager() facebooklogin.loginwithreadpermissions(["public_profile", "email"], fromviewcontroller: self, handler: { (facebookresult, facebookerror) -> void in if facebookerror != nil { print("facebook login failed. error \(facebookerror)") } else if facebookresult.iscancelled { print("facebook login cancelled.") } else { let accesstoken = fbsdkaccesstoken.currentaccesstoken().tokenstring myrootref.authwithoauthprovider("facebook", token: accesstoken, withcompletionblock: { error, authdata in if error != nil { print("login failed. \(error)") } else { print("logged in!") let newuser = [ "provider": user.provider, "imageurl": user!.providerdata["profileimageurl"] string, // etc ] } }) } }) }
now trying achieve in firebase 3.x
. however, got confused on should place permissions , stuff
this tried far
@ibaction func facebooklogindidtouch(sender: anyobject) { let facebooklogin = fbsdkloginmanager() let credential = firfacebookauthprovider.credentialwithaccesstoken(fbsdkaccesstoken.currentaccesstoken().tokenstring) firauth.auth()?.signinwithcredential(credential) { (user, error) in if error != nil { print("login failed. \(error)") } else { print("logged in!") let newuser = [ "provider": user.provider, "imageurl": user!.providerdata["profileimageurl"] string ] } }) }
update:
facebooklogin.loginwithreadpermissions(["public_profile", "email"], fromviewcontroller: self, handler: { (facebookresult, facebookerror) -> void in if facebookerror != nil { print("facebook login failed. error \(facebookerror)") } else if facebookresult.iscancelled { print("facebook login cancelled.") } else { // firebase authentication stuff.. let credential = firfacebookauthprovider.credentialwithaccesstoken(fbsdkaccesstoken.currentaccesstoken().tokenstring) firauth.auth()?.signinwithcredential(credential) { (user, error) in if error != nil { print("login failed. \(error)") } else { print("logged in!") let userid = helpers.extractuid(user!) let rootref = firdatabase.database().reference() let userref = rootref.child("users").child(userid) userref.observeeventtype(.value, withblock: { snapshot in if snapshot.value nsnull { let newuser = [ "providerid": user?.providerid, "displayname": user?.displayname, ] userref.setvalue((newuser as! anyobject)) // perform segue } }) } })
after login facebook , user data ... have add firebase authentication stuff
@ibaction func facebooklogindidtouch(sender: anyobject) { let facebooklogin = fbsdkloginmanager() facebooklogin.loginwithreadpermissions(["public_profile", "email"], fromviewcontroller: self, handler: { (facebookresult, facebookerror) -> void in if facebookerror != nil { print("facebook login failed. error \(facebookerror)") } else if facebookresult.iscancelled { print("facebook login cancelled.") } else { // firebase authentication stuff.. let credential = firfacebookauthprovider.credentialwithaccesstoken(fbsdkaccesstoken.currentaccesstoken().tokenstring) firauth.auth()?.signinwithcredential(credential) { (user, error) in if error != nil { print("login failed. \(error)") } else { print("logged in!") } }) } }) }
Comments
Post a Comment