Swift FacebookGraphAPI快速获取

Swift FacebookGraphAPI快速获取,swift,facebook,facebook-graph-api,facebook-access-token,Swift,Facebook,Facebook Graph Api,Facebook Access Token,我在使用Facebook Graph API时遇到问题。连接由login.swift中的Firebase进行 我的Facebook登录按钮代码: public func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) { loginAlert.isHidden = false if error !

我在使用Facebook Graph API时遇到问题。连接由
login.swift
中的
Firebase
进行

我的Facebook登录按钮代码:

public func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!)
{
    loginAlert.isHidden = false

    if error != nil {
        print(error.localizedDescription)
        return
    } else if (result.isCancelled){ // Canceled by user
        print("user canceled sign up")
        loginAlert.text = "Canceled"
    } else {

        let credential = FIRFacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)

        FIRAuth.auth()?.signIn(with: credential, completion: { (user, error) in // Sign in
            if error != nil {
                print(error!.localizedDescription)
                return
            }
            self.ref.child("Users").child(user!.uid).child("Name").setValue(user?.displayName)
        })

        print("user logged with facebook -> WalkThrough")

        loginAlert.text = "Successfuly logged in!"


        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(Int64(NSEC_PER_SEC) * 2) / Double(NSEC_PER_SEC), execute: { () -> Void in

            transitionSegue.segue.switchToWalkThrough() // Segue
        })
    }
}
然后我试图从
profile.swift
中的Graph API中获取数据

我的提取数据功能:

func getUserFacebookDataAndFriends() {
    if (FBSDKAccessToken.current() != nil) {
        let parameters = ["fields": "email, id, name"]
        let graphRequest = FBSDKGraphRequest(graphPath: "me", parameters: parameters)

        _ = graphRequest?.start { connection, result, error in
            // If something went wrong, we're logged out
            if (error != nil) {
                // Clear email, but ignore error for now
                return
            }



        } // End of graph request
    }
}
但它会直接返回。从Facebook获取数据的唯一方法是在用户登录过程中。 我认为,当用户已经登录时,应用程序会丢失facebook令牌,然后Firebase会接管,同时保存facebook用户

有人有解决办法吗