如何从Firebase存储下载的文件中获取本地路径

时间:2017-07-13 15:57:22

标签: android firebase firebase-storage

我对Firebase文档感到困惑:https://firebase.google.com/docs/storage/android/download-files

我正在尝试通过文件的URL从Firebase下载文件,然后获取其本地路径:

mStorageReference.getFile(downloadURL).addOnSuccessListener(new 
    OnSuccessListener<FileDownloadTask.TaskSnapshot>() {

    @Override
    public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {

        // I assume the file is now downloaded from the given URL and is on the device
        // HOW DO I GET THE PATH TO THE FILE ON THE DEVICE ?
    }
});

问题出在评论中。

1 个答案:

答案 0 :(得分:2)

来自文档: -

  

getFile()方法将文件直接下载到本地设备。

因此,您可以先创建一个临时文件,而不是执行您正在执行的操作。 以下是一个例子: -

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

之后,您将此localFile作为参数传递给getFile()方法(而不是传递downloadURL)。因此,当您的onSuccess()被触发时,此文件将填充已下载的数据,您可以根据需要访问该文件。这样的事情: -

mStorageReference.getFile(localFile).addOnSuccessListener(new 
OnSuccessListener<FileDownloadTask.TaskSnapshot>() {

@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
      //localFile contains your downloaded data

}
});

请注意,在此示例中,localFile是临时的,但您也可以在指定的路径上创建文件。这取决于您的使用案例。

相关问题