【问题标题】:Firebase storage uploads only 130 images at a time from android phonesFirebase 存储一次只能从 Android 手机上传 130 张图片
【发布时间】:2018-09-30 10:39:20
【问题描述】:

我正在尝试将 2680 张图片(总大小 200mb)从我的 Android 手机上传到 Firebase 存储。使用下面的代码,我一次只能上传 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();。 它还会在我的 logcat 中生成 2 个错误:

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)

【问题讨论】:

    标签: android firebase firebase-storage


    【解决方案1】:

    我的第一个猜测是您正在溢出客户端中的队列。

    如果是这种情况,您需要有自己的队列管理来开始上传。所以:

    • 开始前几次上传(绝对少于 10 个,可能不超过 2-3 个)
    • 等待每次上传完成
    • 完成一次上传后,开始另一次上传
    • 重复直到完成所有文件

    这可以防止客户端过载,并且可能会更快,因为您在连接上引入的争用更少。

    【讨论】:

      【解决方案2】:

      你是如何定义的 fileList ?显而易见的答案是fileList == 130

      还要确保子引用是唯一的

      【讨论】:

      • 最终文件[] fileList = directory.listFiles();不,不是 30。它运行到 130 并停止。
      • 对不起,我的意思是 130,我现在改了。你说的停止是什么意思?循环退出,还是抛出异常?
      • 捕获异常。
      • 并产生两个系统错误。 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)
      • 我会尝试打印导致错误的 nr [131] 的 currentFile 详细信息,并查看是否有任何不允许的字符。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 2013-04-22
      • 2015-10-09
      • 2017-06-29
      • 1970-01-01
      相关资源
      最近更新 更多