2017-08-07 31 views
0

Ich bin neu in Firebase und habe ein paar Probleme beim Hochladen von Bildern zu firebase.storage.Bilder zu Firebase von ReactNative hochladen

In meiner Anwendung habe ich ein Bild, und wenn ich es console.log bekomme ich diese:

file:///Users/waltermonecke/Library/Developer/CoreSimulator/Devices/B38A76A…6E2-5EE0F4B38878/Documents/images/F6DFDD32-A741-446B-B035-F8407197421C.jpg 

Also im Grunde eine Referenz auf das .jpg Bild. Jetzt möchte ich es laden und dies ist mein Code so weit:

let img = job.photo1.uri; 
console.log(img) // See above 

let storageRef = firebase.storage().ref(`/jobs/${currentUser.uid}`); 
storageRef.put(img); 

Ich dachte, das genug gewesen wäre, aber ich bin eindeutig etwas fehlt, da ich diese Fehlermeldung:

Firebase Storage: Invalid argument in `put` at index 0: Expected Blob or File. 

Danke sehr im Voraus für jede Hilfe.

Antwort

1

storageRef.put akzeptiert Blob statt String. Reactive native haben keine eingebaute Methode, um Bilddatei in Blob zu konvertieren, so dass Sie react-native-fetch-blob Bibliothek verwenden können, um dies zu erreichen.

Blob.build(img, { 
     type: "image/png;" 
}).then(blob => { 
    firebase 
    .storage() 
    .ref(`/jobs/${currentUser.uid}`) 
    .put(blob, { contentType: "image/png" }) 
    .then(snapshot => { 
     // Done upload 
     blob.close(); 
    }); 
+0

Dank für Ihre Antwort danken, aber ich habe nicht eine '.build' sehen Methode im Blob-Objekt. –

0

Hängt davon ab, welche Bibliothek Sie für Ihre Feuerbasis Integration verwenden ... Unter der Annahme, react-native-firebase, sollte diese Arbeit:

firebase 
.storage() 
.ref(`/jobs/${currentUser.uid}`) 
.putFile(img) 
.on(
    'state_changed', 
    (snapshot) => { 
    console.log(snapshot); 
    }, 
    err => { 
    console.error(err) 
    }, 
    (uploadedFile) => { 
    console.log(uploadedFile) 
    } 
); 
+0

Ich benutze Firebase, ich versuchte die PutFile-Methode. Es scheint jedoch, dass es kein gültiger Methodenaufruf ist. '_firefase2.default.storage (...) .ref (...). PutFile ist keine Funktion' –

+0

Verwenden Sie dieses Paket? https://github.com/invertase/react-native-firebase Das ist das, auf das ich ursprünglich hingewiesen habe ... Ich weiß, dass es keine vollständige Antwort ist, aber ich habe es mit Leichtigkeit verwendet. – gtfargo