Cuando presiono cargar, la imagen se carga en Firebase Storage, pero parece que no puedo obtener la URL de la imagen, puedo ir a la pestaña Almacenamiento en Firebase, hacer clic en la imagen y hacer clic en su ling, copiar el enlace y luego pegarlo en la BASE DE DATOS donde la necesito para la visualización y funcionará, ¡pero no veo una URL de imagen o una URL de descarga cuando consolo.log la instantánea de la TAREA const!
Me temo que el método:
const task = uploadBytesResumable(storeref, ImSRC, metdata)¡que estoy usando para cargar la imagen no produce una URL de imagen! ¿Podría ser esto así? !!!AQUÍ ESTÁ TODO EL CÓDIGO PARA EL BOTÓN SUBIR !!
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); }); } });Obtener la URL de descarga de Firebase Storage es (como cargar los datos en sí) una operación asíncrona. Al igual que cualquier código que deba ejecutarse después de que se haya completado la carga, debe estar dentro del bloque then() para esa tarea, el código que debe ejecutarse después de que se haya determinado la URL de descarga debe estar dentro del bloque then() () para esa tarea. tarea también.
Asi que:
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); }) } });