Home > front end >  Is there a way to download folder from firebase storage with flutter?
Is there a way to download folder from firebase storage with flutter?

Time:05-20

I want to download .epub files from firebase storage. I can download image file cause I know imageUrl but not .epub file url. How should I do? I store fileName, imageUrl in Firestore but I don't know epub file's url . So I can't store it.

downloadFile(fileName,imageUrl) async{
Dio dio=Dio();                                                   
final storageRef=FirebaseStorage.instance.ref();
final imageUrls =await storageRef.child("Featured").child('a clock orange/Anthony-Burgess-A-Clockwork-Orange-W.-W.-Norton-_-Company-_1986_.epub').getDownloadURL();
  String savePath= await getPath(fileName);
dio.download(imageUrls, savePath,
onReceiveProgress: (rcv,total){
  setState((){
    progress=((rcv/total) *100).toStringAsFixed(0);
  });
  if (progress == '100') {
      setState(() {
        isDownloaded = true;
      });
    }
}).then((_){
  if (progress=="100"){
  setState(() {
    isDownloaded=true;
  });
  }
});}

I tried this. But it didn't work.

.enter image description here

CodePudding user response:

Use Firebase's writeToFile instead of dio's download.

final fileRef = storageRef.child("<path here>");

final appDocDir = await getApplicationDocumentsDirectory();
final filePath = "${appDocDir.absolute}/<path here>";
final file = File(filePath);

final downloadTask = fileRef.writeToFile(file);
downloadTask.snapshotEvents.listen((taskSnapshot) {
...
}

See Download to a local file for details.

  • Related