Firebase数据库中的图像上传在文件上传进度中显示“ NAN”

时间:2019-05-04 09:29:47

标签: javascript firebase firebase-storage

在Firebase中状态更改时上传进度值,但返回“ Nan” 当我打印进度值时。

那么我们如何获取数字而不是'NAN'

function getfile() {

  const ref = firebase.storage().ref('images/');
  const file = $('#file-upload').get(0).files[0];
  const name = (+new Date()) + '-' + file.name;
  const metadata = {
    contentType: file.type
  };
  const task = ref.child(name).put(file, metadata);

  task.on('state_changed',

      function progress(snapshot) {
        var percentage =
          (snapshot.byteTransferred / snapshot.totalBytes) * 100;

        console.log(percentage);
      },

      function error(err) {

      },

      function complete() {
        console.log('Submited Sucessfully');

      }

1 个答案:

答案 0 :(得分:1)

根据firebase documentation,正确的属性是 bytesTransferred 以获取

  

拍摄此快照时已传输的字节总数。

查看您的代码错误的原因是您的代码中有错字。

该代码正在错误使用:

snapshot.byteTransferred

而不是正确的:

snapshot.bytesTransferred

您的代码正在访问的属性会为您提供undefined,这会在控制台中导致NAN,因为TaskSnapshot对象中不存在该属性。