gpt4 book ai didi

ios - Firebase 未从 Facebook 捕获电子邮件/电话

转载 作者:行者123 更新时间:2023-11-30 12:18:00 25 4
gpt4 key购买 nike

当用户使用 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)
}
}
}
}
}

根据下面的评论进行更新。在检查 userInfo 的内容时,以下内容还会生成零电子邮件和电话。我知道电话可能就是这样,但电子邮件似乎应该可以使用。

let userInfo = Auth.auth().currentUser?.providerData

最佳答案

顶级电话号码 currentUser.phoneNumber 仅适用于经过 Firebase 验证的电话号码。如果您有该 Facebook 电话号码,则可以使用 currentUser.updatePhoneNumber API 来验证该号码(您将需要完成整个流程)。否则,您可以等待即将推出的 Admin node.js API 为现有用户设置具有管理员权限的电话号码:https://github.com/firebase/firebase-admin-node/commit/68563c4b2c8128fbc45fc65bad3f6730d320b539

对于电子邮件,如果是“每个电子邮件多个帐户”,则需要通过currentUser.updateEmail自行设置。您可以从 currentUser.providerData 获取 Facebook 电子邮件,其中包含 Facebook 提供商数据。

关于ios - Firebase 未从 Facebook 捕获电子邮件/电话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45158060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com