【发布时间】:2017-07-18 05:15:42
【问题描述】:
当用户使用 Facebook 登录应用程序时,我能够捕获并显示他们的全名;但是,电子邮件和电话号码都没有出现。我已经尝试过“每个电子邮件地址一个帐户”以及“每个电子邮件多个帐户”。我已经使用其电子邮件地址绝对尚未在 Firebase 中注册的帐户对其进行了测试。我错过了什么以至于电子邮件/电话没有被捕获?这一切都适用于 Google 帐户。
let name = Auth.auth().currentUser?.displayName // works!
let email = Auth.auth().currentUser?.email // nil- why?
let phone = Auth.auth().currentUser?.phoneNumber // nil -why?
登录过程是标准的 Firebase w/Facebook,如下所示:
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!)
{
if let error = error
{
print(error.localizedDescription)
}
else
{
if FBSDKAccessToken.current() != nil
{
let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
Auth.auth().signIn(with: credential) { (user, error) in
if let error = error
{
print (error.localizedDescription)
}
}
}
}
}
根据下面的 cmets 进行更新。以下在检查 userInfo 的内容时也会产生一个 nil 电子邮件和电话。我知道电话可能就是这样,但电子邮件似乎应该可以工作。
let userInfo = Auth.auth().currentUser?.providerData
【问题讨论】:
-
可能是 Facebook 用户不允许访问电子邮件或电话号码
-
@ArpitJain 我使用的是我自己的帐户,它确实允许访问。
标签: ios swift firebase firebase-authentication