Как добавить OnProgressListener для загрузки файлов хранилища Firebase?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как добавить OnProgressListener для загрузки файлов хранилища Firebase?

Сообщение Anonymous »

Я пытаюсь создать метод загрузки моих 3D-файлов, хранящихся в хранилище Firebase, с помощью OnProgressListener и показывать загруженный процент для пользователя с помощью ProgressBar, но он не работает должным образом, Progress_percentage, я не знаю, почему мой код внутри OnProgressListener не работает.
Я следовал этим документам, чтобы опробовать то, что намеревался сделать.
https://firebase.google. com/docs/storage/android/download-files#java
https://github.com/firebase/snippets-an ... /src/main/ java/com/google/firebase/referencecode/storage/StorageActivity.java#L346-L357
вот как выглядит мой метод. Я чувствую, что сделал что-то не так в своем коде, Я жду помощи, чтобы исправить мой код и заставить его работать.
private void download3dFile(String fileUrl){
downloadProgressLayout.setVisibility(View.VISIBLE);

FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference httpReference = storage.getReferenceFromUrl(fileUrl);
File localFile;

try {
localFile = File.createTempFile("model","glb");

} catch (IOException e) {
throw new RuntimeException(e);
}

httpReference.getFile(localFile).addOnProgressListener(new OnProgressListener() {
@Override
public void onProgress(@NonNull FileDownloadTask.TaskSnapshot taskSnapshot) {
long percentage = taskSnapshot.getBytesTransferred()/taskSnapshot.getTotalByteCount()*100;
progressPercentageTxt.setText(MessageFormat.format("{0}%", percentage));
progressBar.setProgress((int) percentage);
}
}).addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task taskSnapshot) {
Toast.makeText(MainActivity.this, "Download Complete", Toast.LENGTH_SHORT).show();
downloadProgressLayout.setVisibility(View.GONE);
Uri fileUri = Uri.fromFile(localFile);
Toast.makeText(MainActivity.this, "Uri - "+fileUri, Toast.LENGTH_LONG).show();
}
}).addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {

}
}).addOnCanceledListener(new OnCanceledListener() {
@Override
public void onCanceled() {
Toast.makeText(MainActivity.this, "Download Canceled!", Toast.LENGTH_SHORT).show();
downloadProgressLayout.setVisibility(View.GONE);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MainActivity.this, "Download Failed - "+e.getMessage(), Toast.LENGTH_SHORT).show();
downloadProgressLayout.setVisibility(View.GONE);
}
});

}


Подробнее здесь: https://stackoverflow.com/questions/787 ... wnloadings
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»