【发布时间】:2023-03-16 19:37:01
【问题描述】:
我正在尝试将 Firebase 存储嵌入到照片集应用程序中,该应用程序会收集照片并将它们上传到 Firebase 存储后端。我想上传多张照片并等待所有任务完成,收集下载网址并继续下一步。下面是我的代码
public void saveImageData() {
Incident incident = new Incident();
final ArrayList<Uri> downloadUris = new ArrayList<>();
StorageReference storageRef = storage.getReferenceFromUrl(Constants.FIREBASE_URL);
for (Uri uri : imageUris) {
StorageReference imagesRef = storageRef.child("images/" + uri.getLastPathSegment());
uploadTask = imagesRef.putFile(uri);
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
downloadUris.add(taskSnapshot.getDownloadUrl());
Log.e(TAG, "Size of data: " + downloadUris.size());
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
}
}
我希望收集所有 uri 并使用存储在 downloadUris 中的结果。当我键入此内容时,我意识到这可能不是 firebase 问题,而是了解如何等待并行任务完成执行并继续执行结果。我怎样才能实现这个目标? 谢谢
【问题讨论】:
-
建议的答案对您的情况有帮助吗?
标签: java android firebase-storage