错误:尝试将文件上传到Firebase存储时出现“无效参数”

时间:2020-01-05 16:03:06

标签: javascript html google-cloud-firestore firebase-storage

尝试将图像上传到Firebase存储时出现以下错误:

v {code_: "storage/invalid-argument", message_: "Firebase Storage: Invalid argument in `put` at index 0: Expected Blob or File.", serverResponse_: null, name_: "FirebaseError"}
name: (...)
code: (...)
message: (...)
serverResponse: (...)
code_: "storage/invalid-argument"
message_: "Firebase Storage: Invalid argument in `put` at index 0: Expected Blob or File."
serverResponse_: null
name_: "FirebaseError"
__proto__: Object

这是我的代码

<div>
     <h1>Upload file</h1>
     <label class="upload-group">
           <input type="file" onchange="handleFileSelect(this)" id="file">
     </label>
           <button type="button" id="uploadButton" onclick="uploadFile()">Submit</button>
</div>

function handleFileSelect() {
  $(".upload-group").show();
  return document.getElementById('file').files[0];
};


function uploadFile() {
  var filename = handleFileSelect().name;
  var storageRef = firebase.storage().ref('/dogImages/' + filename);
  var uploadTask = storageRef.put(selectedFile);

我已经尝试了好几个小时才能将图像上传到Firebase存储中,但是没有成功。我推测问题可能出在我的put()函数上。

1 个答案:

答案 0 :(得分:0)

该错误与安全规则无关。您正在将无效的参数传递给put()。仔细阅读消息:

Firebase存储:put中索引0处的参数无效:预期的Blob或文件。”

您传递了一个字符串,但是API期望使用Blob或File对象。您可能需要查看documentation for uploading files,以获取有关如何正确执行此操作的示例。