【问题标题】:Add Facebook "name" to PFUser ["fullname"] in swift快速将 Facebook“名称”添加到 PFUser [“全名”]
【发布时间】:2026-01-11 18:40:01
【问题描述】:

我有一个注册/登录方法(来自 PFFacebookUtilsV4),当新的 Facebook 用户登录时,它成功地将一个新的 PFUser 对象添加到我的 Parse 数据库中。在该方法中,我创建了一个 FBSDKGraphRequest 来获取基本的用户数据(姓名、电子邮件)。但是,我无法将名称和电子邮件添加到新创建的 PFUser 对象。到目前为止,这是我的代码:

@IBAction func facebookLogin(sender: AnyObject) {
    PFFacebookUtils.logInInBackgroundWithReadPermissions(["public_profile","email","user_friends"],  block: {  (user: PFUser?, error: NSError?) -> Void in
        if let user = user {
            if user.isNew {
                let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"name,email,picture.width(480).height(480)"])
                graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
                    if ((error) != nil)
                    {
                        println("Error: \(error)")
                        ProgressHUD.showError("Error occurred.")
                    } else {
                        self.userFullName = result.valueForKey("name") as? String
                        println("User Name is: \(self.userFullName)")
                        self.userEmail = result.valueForKey("email") as? String
                        println("User Email is: \(self.userEmail)")

                        // Here I try to add the retrieved Facebook data to the PFUser object
                        user["fullname"] = self.userFullName
                        user.email = self.userEmail

                        self.performSegueWithIdentifier("login", sender: self)
                        println("User signed up and logged in through Facebook!")
                        ProgressHUD.showSuccess("Welcome \(self.userFullName)!")
                    }
                })

            } else {
                println("User logged in through Facebook!")
                ProgressHUD.showSuccess("Welcome \(self.userFullName)!")
                self.performSegueWithIdentifier("login", sender: self)
            }
        } else {
            println("User cancelled the Facebook login.")
        }
    })
}

谢谢!非常感谢任何帮助。

【问题讨论】:

  • 哇。一年零 9 个月后,我正在查看这段代码,这让我很头疼。我想把所有东西都打成一个函数也可以……

标签: facebook swift parse-platform xcode6 facebook-sdk-4.0


【解决方案1】:

在 Facebook 请求闭包中添加新数据后保存用户。

user.saveEventually()

或者你喜欢的任何其他存档。

【讨论】:

  • 简单!非常感谢。