尝试上传到存储时出现 firebase 错误

Getting firebase error when trying to upload to storage

我在尝试上传到 firebase 时在控制台中遇到下一个错误:

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

js:

var file, fileName, fileRef, storageImagesRef, storageRef, uploadTask;
var storageFolder = '/pictures/';

function getFileName(fileInput) {
file = fileInput.files;
fileName = file[0].name;
storageRef = firebase.storage().ref(storageFolder + fileName);
uploadTask = storageRef.put(file);

};

html

<input type="file" onchange="getFileName(this)" accept=".png, .jpg, .bmp, .JPEG, .JPG, .svg, .tiff, .gif">

我做错了什么?

问题是由于代码中使用 file 变量的方式造成的。该变量被分配了 FileList - 这就是您要传递给 put 的内容。如果你给它分配 File:

就不会那么混乱了
function getFileName(fileInput) {

    file = fileInput.files[0];
    fileName = file.name;
    storageRef = firebase.storage().ref(storageFolder + fileName);
    uploadTask = storageRef.put(file);
};