上传档案后製作超连结下载档案 - 抓档案名字跟下载的URL code
因为抓档案名字用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"); }}