Firebase Facebook 身份验证在“thirdPartyUserData”中缺少照片字段

Posted

技术标签:

【中文标题】Firebase Facebook 身份验证在“thirdPartyUserData”中缺少照片字段【英文标题】:Firebase Facebook Authentication missing photo field in 'thirdPartyUserData' 【发布时间】:2014-08-16 19:59:49 【问题描述】:

我在 Facebook 上使用 Firebase 简单登录,昨晚遇到了一个小问题。使用权限作为空数组(默认)登录后,我得到了这个

thirdPartyUserData = 
    email = <String>
    "first_name" = <String>
    gender = <String>
    id = <String>
    "last_name" = <String>
    link = <String>
    name = <String>

不同的是,现在我看不到“图片”字段,它是一个带有“数据”的字典(在“数据”、“网址”内)……这个变化发生在昨晚,还有其他人吗?他们的身份验证有同样的问题吗?

我一直登录的权限只有[],(不提供权限就用默认)

【问题讨论】:

你还在观察这个吗?我只是试图重现此问题,但我在 thirdPartyUserData.picture.data.url 中获取了用户的个人资料照片 这种情况仍在发生。但是,当我尝试使用 Firebase 的 js sdk 做同样的事情时,我没有问题。我通过从 facebook 用户的 id 重建 facebook 个人资料图像 url 解决了我的问题。 啊,ios 了。我试图用 JS 重现。看起来 Facebook 对待他们的方式有点不同。这个其他答案有帮助吗? ***.com/a/20623845/839465 谢谢童珍妮!我想我要做的就是依靠@"https://graph.facebook.com/%@/picture?type=small 的知识指向他们的图标(或者如果他们没有图标,它有一个默认的无图标图像。(虽然,在这篇文章的前一天,我是能够在 thirdPartyUserData 中看到“图片”字段,但不再显示,但 firebase js auth 仍显示此字段。奇怪。) 知道了。一旦我了解更多信息,我将调查并更新这个问题:) 【参考方案1】:

感谢您的宝贵时间,

我还没有完全解决这个问题,但如果其他人(在 iOS 上)和我有同样的问题,你应该看看 Jenny Tong 建议的方法;如果没有个人资料图标,您可以重建网址;

http://graph.facebook.com/%@/picture?type=small http://graph.facebook.com/%@/picture?type=normal http://graph.facebook.com/%@/picture?type=large

其中 %@ 是用户的 facebookID。所以在我的情况下,我做的是正常的......

authClient.loginToFacebookAppWithId(kFacebookAppId, permissions: [], audience: ACFacebookAudienceOnlyMe, withCompletionBlock: (error:NSError!, user:FAUser!) in ...)

如果我在thirdPartyUserData 中没有找到picture,我会求助于上述重建。即使用户没有 facebook 个人资料图片(您获得默认剪影),它也可以工作。

【讨论】:

【参考方案2】:

第三方数据的内容是 Facebook 的权限及其 API 的一部分;它可以随时更改。您可以启用的特定选项以及您收到的回馈内容已涵盖in this Facebook page under "reference"。您可能想尝试这些。我确实在扩展权限下看到了“user_photos”。

关于您的“权限数组”:要控制出现在 thirdPartyUserData 的内容中的内容,您可以在简单登录中将这些参数设置为 逗号分隔的 scope 变量 的一部分(字符串不是数组)。阅读Facebook guide 了解有关如何执行此操作的一些信息。

【讨论】:

感谢您的宝贵时间,但我发现这可能只是 Firebase iOS sdk 上的问题;我从 web 组件尝试过,没有任何问题。另外,user_photos 权限有点过大,我只想要他们的个人资料图标,而 Firebase 要求您传递一系列权限。

以上是关于Firebase Facebook 身份验证在“thirdPartyUserData”中缺少照片字段的主要内容,如果未能解决你的问题,请参考以下文章

如何确定 Firebase 用户是不是使用 facebook 身份验证登录

如何确定 Firebase 用户是不是使用 facebook 身份验证登录

在android中通过firebase进行Facebook登录时身份验证失败

我可以使用啥密钥来验证 Facebook 登录生成的 Firebase 身份验证令牌

Firebase Facebook 身份验证:格式错误或过期的身份验证凭据

无法使用 Flutter 和 Firebase 设置 Facebook 身份验证