2016-07-24 34 views
2

我的问题很简单,当我调用taskSnapshot.getTotalByteCount()时,我得到的值为-1,因此当插入addOnProgressListener的示例代码时,我得到了非常奇怪的进度更新。 继承人我的完整代码:Firebase存储进度条

@Override 
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { 
    double progress = (100.0 * taskSnapshot.getBytesTransferred())/taskSnapshot.getTotalByteCount(); 
    Log.d("Progress", "onProgress: The value of the max is: " + taskSnapshot.getTotalByteCount()); 
    Log.d("Progress", "onProgress: The progress is: " + progress); 
} 

请帮助家伙! :(

+0

它的样子,有些错误发生试图附加'onFailureListener'的d打印错误登录 –

+0

它不显示任何错误...我必须添加任何元数据? – Andrea

回答

0

我设置的上传任务与.putFile代替.putStream,和它的作品,鸵鸟政策知道为什么,但现在它的工作原理是这样的代码:

UploadTasktask=FirebaseStorage.getInstance().getReferenceFromUrl(Constants.Firebase_Storage).child("Test").putFile(uri, metadata)

0

因为它是一个警告,我见过谁reported这个问题的原因,而是没有在官方docs 变化宣告你的代码的人是这样的:

@Override 
@SuppressWarnings("VisibleForTests") 

public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { 
    double progress = (100.0 * taskSnapshot.getBytesTransferred())/taskSnapshot.getTotalByteCount(); 
    Log.d("Progress", "onProgress: The value of the max is: " + taskSnapshot.getTotalByteCount()); 
    Log.d("Progress", "onProgress: The progress is: " + progress); 
}