I want to take the value of . getDownloadURL()

Asked

Viewed 44 times

-2

I’d like to take the value of url_imagem and use as function Return upImage. I tried several things and could not find solution.

function upImage(nomeDaPlanta, imgFile){

    var file = imgFile.files[0];
    console.log(file);
    storageRef.child(nomeDaPlanta + ".jpg").put(file).then(function(snapshot) {
        console.log(snapshot);

        var url = snapshot.ref.getDownloadURL().then(function(url_imagem) {
            console.log(url_imagem);
            
        }).catch(error => {

            console.log(error);
        });

    });
    return url_imagem;
}

1 answer

1


Its function is an asynchronous function. There is no way to return a string, only a Promise

async function upImage(nomeDaPlanta, imgFile) {
  var file = imgFile.files[0];
  return storageRef
    .child(nomeDaPlanta + ".jpg")
    .put(file)
    .then(function (snapshot) {
      return snapshot.ref.getDownloadURL();
    })
    .catch((error) => {
      console.log(error);
    });
}

// logo você pode chamar a função.
upImage('planta', myFile).then((url) => {
    console.log(`minha url do arquivo enviado é ${url}`);
});

// Você também pode usar async/await (note que a função precisa ter async na frente
const url = await upImage('planta', myFile);

Browser other questions tagged

You are not signed in. Login or sign up in order to post.