成功上载图像后,firebase snapshot.downloadURL未定义

时间:2018-05-28 09:43:03

标签: firebase firebase-storage angularfire snapshot

我在我的应用程序中有这个代码,我用来上传图像并获取其URL,以便我可以将其保存在数据库中,图像采用base64格式,上传成功,我可以在{{输出,并通过检查我的firebase存储,然而,快照的downloadUrl属性是未定义的我不知道为什么。这不是它应该工作的方式

console.log(snapshot);

4 个答案:

答案 0 :(得分:4)

使用snapshot.ref.getDownloadURL()

答案 1 :(得分:1)

2019年11月更新来自 firebase 的官方文档:

function(){
      uploadTask.snapshot.ref.getDownloadURL().then(function(downloadURL) {
        console.log('File available at', downloadURL);
      });

    });

Here is the source from firebase documentation

答案 2 :(得分:0)

我正在使用angularfire2 5.0.0-rc11并面临相同的问题。我将代码修改如下:

storage.$putString(b64, 'data_url', {contentType:'image/jpg'}).$complete(function(snapshot) {
    console.log(snapshot);
    //item.avatarUrl=snapshot.downloadURL;
      // changed to:
      snapshot.getDownloadURL()
      .then( downloadUrl => {

        item.avatarUrl=downloadUrl
        agents.$add(item).then(function(ref) {
        });
      })
      .catch( error => {
        console.log(error);
        //catch error here
      });

});    

答案 3 :(得分:0)

如果您使用的是Andorid,请使用此代码获取上传的文件Uri。

Task<Uri> downloadUrl = taskSnapshot.getMetadata().getReference().getDownloadUrl(); 
Uri fileUri = downloadUrl.getResult().toString();