在Android中,从Firebase存储下载的文件存储在哪里?

时间:2016-12-21 06:32:10

标签: android firebase firebase-storage

我从项目控制台将文件上传到Firebase存储。现在,我使用Firebase存储文档中提到的“下载到本地文件”方法从我的应用程序下载了该文件,但我无法在手机上找到下载的文件。

有人可以告诉我该文件下载到哪里了吗?

    FirebaseStorage firebaseStorage = FirebaseStorage.getInstance();
    final StorageReference storageReference = firebaseStorage.getReferenceFromUrl("gs://ldq-app-d2e6b.appspot.com");

    button_down.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String fileName = new String(editText_file.getText().toString());

            StorageReference childReference = storageReference.child("Quizzes");

            StorageReference fileReference = storageReference.child("Quizzes/" + fileName + ".pdf");

            File localFile = null;

            try {
                localFile = File.createTempFile(fileName, "pdf");
            }
            catch (IOException ioe){
                Toast.makeText(getContext(), "File creation failed", Toast.LENGTH_SHORT).show();
            }

            fileReference.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
                    Toast.makeText(getContext(),"File downloaded",LENGTH_SHORT).show();
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(getContext(),"Download failed. Try again!", LENGTH_SHORT).show();
                }
            });
            //Toast.makeText(getContext(),"Button working",LENGTH_SHORT).show();
        }
    });

1 个答案:

答案 0 :(得分:3)

根据Firebase文档,他们正在创建一个临时文件,用于从Url保存图像。 Link

File localFile = File.createTempFile("images", "jpg");

如果您想将其存储在手机的内存或外部存储器中,只需创建一个带存储路径的文件并将其传递给 FileDownloadTask

File storagePath = new File(Environment.getExternalStorageDirectory(), "directory_name");
// Create direcorty if not exists
if(!storagePath.exists()) {
    storagePath.mkdirs();
}

final File myFile = new File(storagePath,"file_name");

yourStorageRef.getFile(myFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
    // Local temp file has been created
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
    // Handle any errors
}
});