skip to Main Content

In my Flutter app, I have pages with multiple user profile images. Sometimes 20 of the same user profile image. For every image, I fetch the download URL from Firebase Storage and use a FadeInImage. Will Firebase Storage count every image as a download or do the images get saved to the cache and automatically reused?

In other words, do I need to worry about saving the images to cache myself to reduce downloads and costs or does Firebase do that for me?

3

Answers


  1. do I need to worry about saving the images to cache myself to reduce downloads or does Firebase do that for me?

    If you’re reading files from Storage, it doesn’t mean that they will be automatically cached on your device.

    To solve this you have to find a solution for caching, so you don’t need to use bandwidth each time you display an image. For Flutter I recommend you check the accepted answer from the following post:

    Login or Signup to reply.
  2. I cannot find any documentation that currently shows any data being cached, but flutter has plenty of libraries that can help with that, I personally use the extended image library https://pub.dev/packages/extended_image that can cache any image fetched on the network with very simple code.

    Login or Signup to reply.
  3. Are you trying to reduce bandwidth costs for Firebase storage or for users so they don’t have to download same images every time? If for users, then you’ll have to cache them yourselves and write your own logic to purge the files as needed.

    Alternatively, consider using Cloud CDN, where egress charges are lower compared to Firebase storage and it would also speed up download speed significantly for end users. It’ll also be useful to purge cache programmatically using Cloud Functions/backend when a user updates their profile image.

    Also see Firebase storage extremely slow fetching.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search