将图像上传到Firebase,收到错误说明预期的blob或文件

时间:2018-03-14 23:40:23

标签: firebase react-native firebase-storage

问题

我正在尝试创建一个用户可以上传图片的社交媒体应用。我正在为应用程序使用firebase和firebase存储。我尝试将图片上传到firebase,我收到了一个错误:

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

我尝试上传的图片数据不能是blob,所以我的问题是,如何修复此代码,或者如何以其他方式上传图片?

代码

//uri is the path on the phone to the image
uploadImage(uri) {

 var ref = firebase.storage().ref().child('image.jpg');

  let uriParts = uri.split('.');
  let fileType = uri[uri.length - 1];

  let formData = new FormData();
  formData.append('photo', {
    uri,
    name: `photo.${fileType}`,
    type: `image/${fileType}`,
  });

ref.put(formData).then(function(snapshot) {
  console.log('Uploaded a blob or file!');
});

  };

1 个答案:

答案 0 :(得分:0)

要上传新文件,您应该使用referencedColumn直接更新,文件为File,Blob或Uint8Array。

See the documentation

您可能想要使用react-native-fs抓取Blob,然后上传它:

ref.put(file)