I have an android app where user can upload multiple pdf files in a "folder". My app is working perfectly for uploading and viewing a single PDF file.To upload multiple files, I know I will have to use a for loop but I don't have any idea how to proceed.
My code for uploading a single PDF is :
StorageReference pdfRef = storageReference.child(fName + "/" + pdfName);
pdfRef.putFile(pdfData)
.addOnSuccessListener(new OnSuccessListener < UploadTask.TaskSnapshot > () {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(MainActivity.this, "File Uploaded!", Toast.LENGTH_SHORT).show();
Task < Uri > uriTask = taskSnapshot.getStorage().getDownloadUrl();
while (!uriTask.isComplete());
Uri uri = uriTask.getResult();
Map < String, Object > map = new HashMap < > ();
map.put("url", String.valueOf(uri));
map.put("name", pdfName);
DocumentReference documentReference = db.collection(fName).document(pdfName);
documentReference.set(map)
.addOnSuccessListener(new OnSuccessListener < Void > () {
@Override
public void onSuccess(Void aVoid) {
Log.d("TEST", "onSuccess: Task was successful");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d("TEST", "onFailure: Task was not successful" + e.getLocalizedMessage() + " " + e.getMessage());
}
});
alertDialog.dismiss();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
fName and pdfName are the names of the folder and PDF to be uploaded which I'm getting from somewhere else in my code. The main issue is using the for loop