Firebase хранилище загружает только 130 изображений одновременно с телефонов Android - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь загрузить 2680 изображений (общий размер 200 МБ) в хранилище Firebase с моего телефона Android.Используя приведенный ниже код, я могу загружать одновременно только 130 изображений.Есть ли ограничение на загрузку за раз, или я делаю что-то не так?

try {              
    for (int i=0; i < fileList.length; i++) {
        final File currentFile = fileList[i];
        FirebaseStorage.getInstance().getReference()
            .child("Product Images/" + currentFile.getName() + "." + MimeTypeMap.getFileExtensionFromUrl(currentFile.getPath()))
            .putFile(Uri.fromFile(new File(currentFile.getAbsolutePath())))
            .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    Log.d("UPLOADCOMPLETED", "onSuccess: " + (currentIterator) +taskSnapshot.getDownloadUrl());
                }
            });
    }
} catch (Exception e) {
    Log.d("UPLOADCOMPLETED");
    e.printStackTrace();
}

После выполнения до 130 он выходит из цикла и выполняет catch () ;.Это также генерирует 2 ошибки в моем logcat:

W/System.err:at com.google.firebase.storage.UploadTask.schedule(Unknown Source:4)
W/System.err:at com.ubuyquick.customer.UploadingImages.ProductUpload.pushToFirebase(ProductUpload.java:77)

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Мое первое предположение - вы переполняете очередь в клиенте.

Если это так, вам нужно иметь собственное управление очередью для начала загрузки.Итак:

  • Запустите первые несколько загрузок (определенно менее 10, вероятно, не более 2-3)
  • Дождитесь завершения каждой загрузки
  • Когда одинзагрузка завершена, начните другую загрузку
  • Повторяйте, пока не закончите со всеми файлами

Это предотвращает перегрузку клиента и может также быть быстрее, так как вы вносите меньше разногласийна связи.

0 голосов
/ 30 сентября 2018

Как вы определили fileList?Очевидный ответ таков: fileList == 130

Также убедитесь, что дочерние ссылки уникальны

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...