在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');
}
答案 0 :(得分:1)
根据firebase documentation,正确的属性是 bytesTransferred 以获取
拍摄此快照时已传输的字节总数。
查看您的代码错误的原因是您的代码中有错字。
该代码正在错误使用:
snapshot.byteTransferred
而不是正确的:
snapshot.bytesTransferred
您的代码正在访问的属性会为您提供undefined
,这会在控制台中导致NAN
,因为TaskSnapshot对象中不存在该属性。