我在我的应用中使用Firebase,我允许用户使用Facebook登录。我可以使用Auth.auth()
成功访问登录的Facebook用户。
我现在遇到的问题是,一些个人资料图片给了我“URL签名已过期”。我想重新获取最新的个人资料图片URL并更新登录用户,但我不确定如何实现这一点。
我知道Facebook提供了一个获取新个人资料图片图片的网址:http://graph.facebook.com/<facebook-id>/picture
或者我也可以使用FBSDKGraphRequest
来获取最新的个人资料图片网址:
FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "picture"]).start(completionHandler: { _, result, error in
guard
error == nil,
let result = result as? [String: Any],
let picture = result["picture"] as? [String: Any],
let data = picture["data"] as? [String: Any],
let pictureURL = data["url"] as? String else {
return
}
log.debug(pictureURL)
})
但是,再次使用Auth.auth().photoURL
时,这些解决方案都不会更新个人资料图片网址。关于如何在使用Auth.auth().photoURL
时更新photoURL并获取新的photoURL的任何想法?