如何在firebase中访问用户的facebook公共信息?

时间:2017-04-27 07:57:08

标签: javascript firebase firebase-authentication facebook-login

我已经请求并获得了我的应用的public_profileemail批准。

点击login with Facebook按钮后,我正在申请这两项权限:

let fbLoginManager = FBSDKLoginManager()
fbLoginManager.logIn(withReadPermissions: ["public_profile", "email"], from: self) { (result, error) in

成功登录流程后,我到达用户已经过身份验证的部分。 (也许我这样做太晚了,但不确定我应该在哪里尝试访问个人资料信息?)

override func viewDidLoad() {
        super.viewDidLoad()

        FIRAuth.auth()!.addStateDidChangeListener() { auth, user in
            if let user = user {
                FIRDatastore.shared.setUser(user: User(authData: user))
                self.performSegue(withIdentifier: self.loginToList, sender: nil)
            }
        }
    }

在这种情况下,user对象的类型为FIRUser类。这应包含公开个人资料信息。但是,我在authData.providerData [0]

下只看到了一部分信息
  

providerID,userID,displayName,photoURL和email。

我没有按照here的说明在public_profile中看到性别或其他任何内容。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

根据documentation,这些是您可以访问的唯一用户属性:

enter image description here

类似于User object属性:

enter image description here

我猜测Facebook身份验证只适用于电子邮件和密码验证。