我正在玩弄Firebase存储,并将其加入照片收集应用程序,该应用程序将一组照片上传到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) {
}
});
}
}
我想收集所有uris并使用存储在downloadUris中的结果。当我输入时,我意识到这可能不是一个火力点问题,但了解如何等待并行任务完成执行并继续执行结果。我怎样才能达到这个目标? 谢谢
难道建议的回答可以帮助您的情况? –