将Firebase Storage中的文件存储在本地存储上。 (Android)

时间:2018-10-13 17:04:26

标签: java android firebase firebase-storage

这是我的函数代码。太乱了,我一直在尝试很多事情,但是没有任何效果。我想从Firebase存储下载pdf文件,并将其保存在设备上的“下载”文件夹中。使用临时文件时,我会获得成功的结果。但是,当尝试保存在设备存储上时,出现下载错误吐司。

因此可以访问和下载文件,但无法在本地存储上建立永久文件。我已将权限设置为“写入和读取外部存储器”。感谢您的帮助!

  public void getfile() {
        File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
         storageRef = storage.getReference();
           pathReference = storage.getReferenceFromUrl(link.getText().toString());
File storagePath = new File (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), name + ".pdf");
        if(!path.exists()) {
            path.mkdirs();
        }
final File myfile = new File(path, "somename");
          //  File file;
           // file = new File(path);
          //  File localFile = File.createTempFile(name.getText().toString(),"pdf");
            pathReference.getFile(myfile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {

                    Toast.makeText(note_list.this, "Downloaded", Toast.LENGTH_SHORT).show();
                    //created

                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(note_list.this, "Download error", Toast.LENGTH_SHORT).show();
                    //error
                }
            }); // Here I try to call this method
        }

0 个答案:

没有答案