Javascript 从ReactNative将图像上载到firebase
我是firebase的新手,在将图片上传到firebase.storage时遇到了一些问题 在我的应用程序中,我有一个图像,当我输入console.log时,我得到以下信息:Javascript 从ReactNative将图像上载到firebase,javascript,firebase,react-native,firebase-storage,Javascript,Firebase,React Native,Firebase Storage,我是firebase的新手,在将图片上传到firebase.storage时遇到了一些问题 在我的应用程序中,我有一个图像,当我输入console.log时,我得到以下信息: file:///Users/waltermonecke/Library/Developer/CoreSimulator/Devices/B38A76A…6E2-5EE0F4B38878/Documents/images/F6DFDD32-A741-446B-B035-F8407197421C.jpg 所以基本上是对.jp
file:///Users/waltermonecke/Library/Developer/CoreSimulator/Devices/B38A76A…6E2-5EE0F4B38878/Documents/images/F6DFDD32-A741-446B-B035-F8407197421C.jpg
所以基本上是对.jpg图像的引用。现在我想上传它,这是我到目前为止的代码:
let img = job.photo1.uri;
console.log(img) // See above
let storageRef = firebase.storage().ref(`/jobs/${currentUser.uid}`);
storageRef.put(img);
我认为这已经足够了,但我显然遗漏了一些东西,因为我收到了以下错误消息:
Firebase Storage: Invalid argument in `put` at index 0: Expected Blob or File.
非常感谢您的帮助。storageRef.put接受Blob而不是string。React native并没有将图像文件转换为Blob的内置方法,所以您可以使用库来实现这一点
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();
});
取决于您用于firebase集成的库。。。假设react native firebase,这应该可以工作:
firebase
.storage()
.ref(`/jobs/${currentUser.uid}`)
.putFile(img)
.on(
'state_changed',
(snapshot) => {
console.log(snapshot);
},
err => {
console.error(err)
},
(uploadedFile) => {
console.log(uploadedFile)
}
);
谢谢您的回答,但是我在Blob对象中没有看到.build方法。我使用的是firebase,我尝试了putFile方法。但是,它似乎不是有效的方法调用_firebase2.default.storage….ref….putFile不是使用此软件包的功能人员?这就是我最初提到的。。。。我知道这不是一个完整的答案,但我已经轻松地使用了它。