问题描述
我使用“FBSDKLoginKit.GraphRequest”获得了 facebook 结果,它返回一个名为“result”的字典,其中包含用户名、电子邮件和个人资料图片。我已经让 Firebase Firestore 正常工作,但 Facebook 个人资料图片的 URL 没有保存到 Firebase 存储中。 ** 如果 URL 打印在控制台中,如果我将其复制并粘贴到浏览器中,它就可以工作。 这是我的代码:
// facebook GraphRequest and result
let facebookRequest = FBSDKLoginKit.GraphRequest(graPHPath: "me",parameters: ["fields":
"email,name,picture.type(large)"],tokenString: token,version: nil,httpMethod: .get)
facebookRequest.start { [weak self] (_,result,error) in
guard let strongSelf = self else {return}
guard let result = result as? [String : Any],error == nil else {
return
}
guard let username = result["name"] as? String,let userEmail = result["email"] as?
String,let fbPicData = result["picture"] as? [String:Any],let data = fbPicData["data"]
as? [String:Any],let fbAvatar = data["url"] as? String else {
return
}
// Firebase STORAGE and URL ( fbAvatar is the constant that has the url needed)
// The code below this line is where this issue lays.
let storageRef = Storage.storage().reference(forURL: "STORAGE NAME")
let storageProfileRef = storageRef.child("STORAGE NAME")
guard let url = URL(string: fbAvatar) else {
return
}
print("Downloading url image from facebook")
URLSession.shared.dataTask(with: url,completionHandler: {data,_,_ in
guard let data = data else {return}
storageProfileRef.putData(data)
if error != nil {
return
}
})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)