That's because right now you're fetching the download link for your 3 images at the same time. Whenever a link is ready, you then apply it to all Flag objects, which is not correct. This results in every Flag object having the same image.
To fix this, you need to create the first flag, fetch the download link of the first image, on link fetched load the image on the last created flag, and only after the image has been loaded correctly proceed to create the following flag and fetch the following image.
Here's how you can do it. I can't test this since I don't have Firebase Storage, but give it a try: