我正在尝试使用文件名显示Firebase存储中的图像。该网址有效,并显示在控制台上。但是我收到以下错误:下面是我的代码:
function getFileUrl(filename) {
var storage = firebase.storage().ref(filename);
storage.getDownloadURL().then(function(url) {
console.log(url);
})
.catch(function(error) {
console.log("error encountered");
});
}
var img = document.createElement('img');
img.src = getFileUrl(y);
您没有从getFileUrl
返回任何内容,这意味着您要将img.src
设置为undefined
。这正是错误消息告诉您的内容。
但是添加简单的return
语句是不可能的,因为下载URL是从Firebase异步加载的。需要下载URL的任何代码都必须在then
内部或从那里调用。
function createImgForFile(filename) {
var storage = firebase.storage().ref(filename);
storage.getDownloadURL().then(function(url) {
var img = document.createElement('img');
img.src = getFileUrl(y);
})
.catch(function(error) {
console.log("error encountered");
});
}