gpt4 book ai didi

javascript - 存储在 firestorage 中并将 url 保存在变量中

转载 作者:行者123 更新时间:2023-11-30 23:59:44 24 4
gpt4 key购买 nike

我是 Javascript 初学者。

我想要做的就是将文件存储在 Firestorage 中,然后将 URL 链接保存在变量中。然而,现在,URL 没有被保留,我的变量是空的。

const pictureUrl = ''

// Upload picture part
var refname = 'profile_pictures/' + "Picture" + "_" + "Name";
let storageRef = firebase.storage().ref(refname);
let firstFile = document.getElementById("pictureImported").files[0]
let uploadTask = storageRef.put(firstFile).then(function(fileSnapshot) {
fileSnapshot.ref.getDownloadURL().then(url => pictureUrl = url)
})

console.log(pictureUrl);

console.log 给出一个空行。我应该怎么做才能真正保存网址?

最佳答案

pictureUrl 只会在 then() 内有一个值,因为 getDownloadUrl() 是异步的。如果您想要 then() 方法之外的 pictureUrl,请执行以下操作:

function storeImage(firstFile){
return new Promise((resolve, reject) => {
let uploadTask = storageRef.put(firstFile).then((fileSnapshot)=> {
fileSnapshot.ref.getDownloadURL().then(url => {
pictureUrl = url;
resolve(pictureUrl);
});
});
}

然后要访问url,您可以执行以下操作:

storageImage(file).then((value) => {
console.log(value);
});

查看此处了解更多信息:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then

关于javascript - 存储在 firestorage 中并将 url 保存在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60813076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com