我尝试添加进度条以在firebase上上传文件。但不幸的是,它并不表示上传进度。 logcat&进度条仅指示文件何时达到100%
$timeout(function () {
// set fit-to-image zoom level
var zoomOut = initialZoom - (getMaxZoom() - 2);
$scope.mapRef.setZoom(zoomOut, {animate: false});
// set minimum zoom to the fit-to-image level
$scope.mapRef.options.minZoom = zoomOut;
// add the image overlay,
// so that it covers the entire map
L.imageOverlay($scope.imageUrl, bounds).addTo($scope.mapRef);
// load cameras after the imageOverlay has been added
callback();
}, 250);
答案 0 :(得分:21)
更改progress
计算中的术语分组,以强制转换为浮动。正如你的代码现在,你正在划分两个长。除法getBytesTransferred() == getTotalByteCount()
之前,除法的结果为0,然后它将为1。
double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
答案 1 :(得分:0)
将数据发送到存储时,您可以观察正在上传的内容的进度。
let uploadTask = profileRef.putData(data, metadata: metadata) { (metadata, error) in
if let error = error {
// Awesome error handling
}
}
现在您已经开始向上发送数据,请观察所做的更改。您取回的快照具有名为 fractionCompleted 的属性。您可以将进度条的最小值和最大值设置为0和1,并将该值设置为完成分数。或者,如果您愿意,只显示上传回来的百分比。
task.observe(.progress, handler: { (snap) in
print("Our upload progress is: \(String(describing: snap.progress?.fractionCompleted))")
})