Firebase 存储 - 在 Android 中上传多个图像文件
Firebase Storage - Upload multiple image files in Android
我想从 Firebase 存储上传和下载图像并在 RecyclerView
中显示。我一次可以上传和下载一张图片,但不能上传和下载多张图片。
我该怎么做?
目前,API 无法处理从 Firebase 存储上传或下载多个文件。
检查以下解决方法:
private void uploadMultipleFile(final int index){
Uri resultUri=Uri.fromFile(new File(errorImageStoredPaths.get(index)));
StorageReference riversRef = storageReference.child("images/"+resultUri.getLastPathSegment());
UploadTask uploadTask = riversRef.putFile(resultUri);
uploadTask.addOnFailureListener(exception -> {
}).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(@NonNull UploadTask.TaskSnapshot snapshot) {
showLog("Uploading...screens "+index);
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
showLog("Upload screen success");
riversRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
uploadedImages.add(uri.toString());
}
});
if((errorImageStoredPaths.size() - 1) != index){
uploadMultipleFile(index+1);
}else {
showLog("All upload over");
uploadToFireStore();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
showLog("Upload failed");
return;
}
});
}
我想从 Firebase 存储上传和下载图像并在 RecyclerView
中显示。我一次可以上传和下载一张图片,但不能上传和下载多张图片。
我该怎么做?
目前,API 无法处理从 Firebase 存储上传或下载多个文件。
检查以下解决方法:
private void uploadMultipleFile(final int index){
Uri resultUri=Uri.fromFile(new File(errorImageStoredPaths.get(index)));
StorageReference riversRef = storageReference.child("images/"+resultUri.getLastPathSegment());
UploadTask uploadTask = riversRef.putFile(resultUri);
uploadTask.addOnFailureListener(exception -> {
}).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(@NonNull UploadTask.TaskSnapshot snapshot) {
showLog("Uploading...screens "+index);
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
showLog("Upload screen success");
riversRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
uploadedImages.add(uri.toString());
}
});
if((errorImageStoredPaths.size() - 1) != index){
uploadMultipleFile(index+1);
}else {
showLog("All upload over");
uploadToFireStore();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
showLog("Upload failed");
return;
}
});
}