2016-10-29 1 views
1

Wenn sich Benutzer mit Facebook einloggen (die einzige Möglichkeit, sich gerade einzuloggen), und etwas hochladen möchten, führe ich Code aus, um ihr Profilbild zuerst hochzuladen, damit andere Benutzer es können Sehen Sie, wer das ursprüngliche Poster ist. Es scheint, wie ich das Profilbild des Benutzers erhalten kann Uri die beispielsweise (von Debug-Modus genommen): https://graph.facebook.com/(FACEBOOKID)/picture?height=200&width=200&migration_overrides=%7Boctober_2012%3Atrue%7DFehler beim Hochladen von Facebook Uri zu Firebase Storage

Allerdings, wenn ich laufen:

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

Es wirft eine Fehlermeldung, „kein Content-Provider "

W/System.err: java.io.FileNotFoundException: Kein Anbieter: https://graph.facebook.com/(FACEBOOKID)/picture?height=200&width=200&migration_overrides=%7Boctober_2012%3Atrue%7D

Fehlercode: -13000,

HTTP-Response-Code: 0

Dank

Antwort

1

Die kurze Antwort ist, dass die URI eine Datei auf dem Dateisystem sein muss (Sie können es herunterladen und erneut hochladen) oder Sie benötigen einen Content-Resolver, der mit HTTPS scheme'ed-Dateien umgehen kann.

Das sagte, meine Frage an Sie ist: Warum? Die Datei ist bereits auf Facebook gehostet und leicht über diese URL abrufbar, warum also erneut hochladen? Sie können diese URL sehr einfach in der Firebase Realtime Database speichern und teilen, ohne dass Sie dafür bezahlen müssen, um in Firebase Storage zu hosten.

+0

Ich habe gerade festgestellt, dass Facebook als Grafik-API, wo Sie das Profilbild des Benutzers erhalten können, wenn Sie ihre Facebook-ID haben. Es funktioniert jetzt, vielen Dank! – Jas1997

Verwandte Themen