我正在尝试从我的android手机上载2680张图片(总大小为200mb)到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)
答案 0 :(得分:1)
我的第一个猜测是您在客户端中溢出了一个队列。
在这种情况下,您需要具有自己的队列管理才能启动上传。所以:
这可以防止客户端超载,并且由于您在连接上引入的争用较少,因此也可能更快。
答案 1 :(得分:0)
您如何定义
fileList
?显而易见的答案是,fileList == 130
还要确保子引用是唯一的