因為抓檔案名字用forEach去抓,沒有固定的順序每次抓都會變動,
因此這邊就決定先抓名字之後再用名字去抓URL然後一起塞進MAP裡儲存,
然後依照MAP size去判斷之前是否抓過,如果抓過就直接讀取MAP裡儲存的內容,這樣就會固定一個順序了。
function load_data(){
  var listRef = firebase.storage().ref(路徑);
  var itemName;
  if(nameMap.size == 0){
    listRef.listAll().then((res) => {
      res.items.forEach((itemRef) => { 
        itemRef.getMetadata().then((metadata) => {
          itemName = metadata.name;
          geturl(itemName); //讀URL
        }).catch((error) => {
          console.log(error);
        });
      });
    
    }).catch((error) => {
      console.log(error);
    });
  }
  else{
    nameMap.forEach((value, key) => {
      //這邊放入直接讀取已有的map的code
    })
    
  }
  
}
function geturl(itemName){
  var itemURL;
  const listRef = firebase.storage().ref(路徑);
  if(nameMap.size == 0){
    listRef.child(itemName).getDownloadURL().then((url) => {
    itemURL = url;
    nameMap.set(itemName,itemURL);
      
    }).catch((error) => {
      console.log(error);
    });
  }else{
    console.log("url failed");
  }
}