How to get all files inside a Firebase Storage directory using Flutter

落爺英雄遲暮 提交于 2021-01-28 05:05:27

问题


I have an App that display nightclub description and image. Each club have about 4 related image. In Firebase Storage i have created directory for each club and then stored their image inside.

so what i want to do is getting all the image from a club directory so i can display all the image in my app

i think a way of achieving this would be to get the DownloadUrl of each image.

i've tried this :

final StorageReference firebaseStorageRef = FirebaseStorage.instance.ref() .child('profilePics/$clubID/SomeImage.jpg').getDownloadURL();

but since i don't know in advance the name of the image stored i can't use this

so any way of doing this ?


回答1:


If you don't know the full path of an object in Cloud Storage, then you can't do anything with it using the mobile client SDKs. Typically, one gets the download URL at the time it was uploaded to the bucket, then writes that URL to a database so it can be queried for later.




回答2:


A solution I came up with was, storing a .txt file which contained the name of each file, so first I read the text file, by line-breaking the file apart, and downloading my images in the same folder with the name of the file I got from the text file. This can work, if you can can store the names of all your files in a text file and then upload it!

Flow of the solution:

  • Store all the names of the files in the Firebase Storage's folder in a .txt file
  • write a method to get the text file and the break it line-by-line
  • write a method to get a download url, have this method call each time you get the name of your file from the .txt file.
  • use the image url as per your wish!

Any suggestions or corrections are welcomed!




回答3:


https://github.com/FirebaseExtended/flutterfire/pull/232

Need to use package in pubspec.yaml like below :

  firebase_storage:
    git:
      url: git://github.com/danysz/flutterfire.git
      ref: master
      path: packages/firebase_storage

Dart file

void getFirebaseImageFolder() {
final StorageReference storageRef =
    FirebaseStorage.instance.ref().child('Gallery').child('Images');
storageRef.listAll().then((result) {
  print("result is $result");
});

Original post by Mahesh Peri



来源:https://stackoverflow.com/questions/56265248/how-to-get-all-files-inside-a-firebase-storage-directory-using-flutter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!