当我点击上传时,图片会被上传到firebase存储,但我似乎无法获得图像url,我可以转到firebase上的存储选项卡,点击图像并点击其链接,将链接复制到中,然后通过它进入数据库,如果我需要它来显示,它就会工作,但是当我控制台日志constTASK的快照时,我没有看到图像URL或下载URL
我担心方法:
const task = uploadBytesResumable(storeref, ImSRC, metdata)
iam用来上传图片并没有生成图片url!可能是这样吗?!!!这是上传按钮的所有代码!!
Upload.addEventListener('click', (e) =>{
let ImSRC = files[0];
if(ImSRC == null ){
alert('no picture selected');
}else{
const metdata = {
contentType: ImSRC.type
}
const storeref = sRef(storage,"UsersProPic/" + cUserID);
const task = uploadBytesResumable(storeref, ImSRC, metdata).then((snapshot)=>{
console.log(snapshot);
function getData(){
snapshot.getDownloadURL().then(function(url){
ProPicUrl = url;
})
}
console.log(ProPicUrl);
});
}
});
从Firebase Storage获取下载URL(就像上传数据本身一样)是一个异步操作。就像上传完成后需要运行的任何代码都需要在该任务的then()
块内一样,在确定下载URL后需要执行的代码也必须在该任务的then()
块内。
因此:
const storeref = sRef(storage,"UsersProPic/" + cUserID);
const task = uploadBytesResumable(storeref, ImSRC, metdata).then((snapshot)=>{
console.log(snapshot);
function getData(){
snapshot.getDownloadURL().then(function(url){
ProPicUrl = url;
console.log(ProPicUrl);
})
}
});