尝试将Facebook Uri上传到Firebase存储时出错

时间:2016-10-29 23:43:31

标签: android facebook-graph-api firebase firebase-storage

当用户使用Facebook登录(当前登录的唯一方式),并希望发布内容时,我会先运行一些代码来上传他们的个人资料图片,以便其他用户可以看到原始海报是谁。看起来我可以获得用户的个人资料图片Uri,例如(从调试模式中获取): https://graph.facebook.com/(FACEBOOKID)/picture?height=200&width=200&migration_overrides=%7Boctober_2012%3Atrue%7D

然而,当我跑步时:

StorageReference posterPicture = mStorage.child("UsersPictures").child(profile.facebookID);
        posterPicture.putFile(profile.profilePictureURI).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {...});

它会抛出一个错误,说&#34;没有内容提供商&#34;

  

W / System.err:java.io.FileNotFoundException:没有内容提供者:https://graph.facebook.com/(FACEBOOKID)/picture?height=200&width=200&migration_overrides=%7Boctober_2012%3Atrue%7D

     

错误代码:-13000,

     

HTTP响应代码:0

由于

1 个答案:

答案 0 :(得分:1)

简短的回答是URI必须是文件系统上的文件(您必须下载并重新上传),或者您需要一个可以处理HTTPS scheme文件的内容解析器

那就是说,我的问题是:为什么?该文件已经托管在Facebook上,并且可以通过该URL轻松检索,那么为什么要再次上传呢?您可以在Firebase实时数据库中轻松存储和共享该URL,无需支付费用即可在Firebase存储中托管。