将多个pdf文件上传到Firebase存储-Android

时间:2020-07-21 10:14:57

标签: java android firebase google-cloud-firestore firebase-storage

我有一个Android应用,用户可以在“文件夹”中上传多个pdf文件。我的应用程序可以完美地上传和查看单个PDF文件。要上传多个文件,我知道我必须使用for循环,但是我不知道如何进行操作。

我上传单个PDF的代码是:

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和pdfName是要从我的代码其他地方获取的要上载的文件夹和PDF的名称。主要问题是使用for循环

0 个答案:

没有答案