Javascript 如何在firebase存储器中存储图像,并在实时数据库中保存图像url

Javascript 如何在firebase存储器中存储图像,并在实时数据库中保存图像url,javascript,html,firebase-realtime-database,firebase-storage,Javascript,Html,Firebase Realtime Database,Firebase Storage,我得到了未定义的Url。有人知道如何解决我的问题吗 function store(){ var litrato = this.files[0]; var storageref = firebase.storage().ref('gallery/' + litrato.name); var uploadTask = storageref.put(litrato); uploadTask.on('state_changed', function(snapshot){

我得到了未定义的Url。有人知道如何解决我的问题吗

function store(){
    var litrato = this.files[0];

    var storageref = firebase.storage().ref('gallery/' + litrato.name);
    var uploadTask = storageref.put(litrato);
    uploadTask.on('state_changed', function(snapshot){
    }, function(error){
    }, function(){
        var downloadURL = uploadTask.snapshot.downloadURL;
        console.log(downloadURL);
    });
}

下载URL在用于监视上载任务的任务快照上不再可用。上传完成后,您需要在
StorageReference
上调用
getDownloadURL()
。请参阅上文档中的示例。应用于您的代码,这将成为:

var storageref = firebase.storage().ref('gallery/' + litrato.name);
var uploadTask = storageref.put(litrato);
uploadTask.on('state_changed', function(snapshot){
}, function(error){
  console.error(error);
}, function() {
  uploadTask.snapshot.ref.getDownloadURL().then(function(downloadURL) {
    console.log('File available at', downloadURL);
  });
});

downloadURL
属性在快照上不再可用。上传完成后,您需要在
StorageReference
上调用
getDownloadURL()
。例如:另请参见,谢谢,先生,如何像在div中一样检索web中的图像?这似乎是另一个问题,但如果您只是创建一个
img
并设置其
src
属性,那么它应该会显示出来。类似于
var img=document.createElement('img');img.src=下载URL;文件.正文.附件(img)