我对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 ?
}
});
问题出在评论中。
答案 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
是临时的,但您也可以在指定的路径上创建文件。这取决于您的使用案例。