Firebase facebook登录照片网址签名已过期

ren*_*ena 3 facebook-login firebase firebase-authentication

我在我的APP中使用Firebase(angularfire)和Facebook登录来验证我的用户.但是今天我意识到配置文件图片网址已过期,但Firebase SDK没有刷新它.

有没有办法解决这个问题,还是应该使用Facebook API请求图像?

Joh*_*son 11

我通过使用可在以下位置找到的photoURL解决了这个问题:返回的用户数据在user.providerData[0].photoURL 哪里user

firebase.auth().onAuthStateChanged( user => {})
Run Code Online (Sandbox Code Playgroud)

并且[0]是感兴趣的身份验证提供程序的索引.在我的情况下,我只有Facebook身份验证,因此索引是0.

似乎这个URL以某种方式被更新...(可能在用户登录?)

编辑:似乎确实在用户登录时更新了URL.因此请注意,如果浏览器"记住"用户,则使用此方法,如果用户未被强制登录,则图像最终会过期到期前再次.


boj*_*eil 1

Firebase 仅在您使用提供商登录后更新此数据:

  1. 用户使用 Facebook 登录。Facebook 提供商数据已填充。
  2. 用户更新他们的 Facebook photoURL。
  3. 用户再次使用 Facebook 登录,Facebook 提供商的 photoURL 会更新。

再次登录是这里的关键。用户重新加载不会刷新用户属性。

不过,顶级的 displayName 和 photoURL 不会更新。您需要使用相关 API 手动执行此操作。

如果这不足以满足您的需求,您应该改用 Facebook API。