2016-07-24 38 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); 
}