我在我的应用程序中有这个代码,我用来上传图像并获取其URL,以便我可以将其保存在数据库中,图像采用base64格式,上传成功,我可以在{{输出,并通过检查我的firebase存储,然而,快照的downloadUrl属性是未定义的我不知道为什么。这不是它应该工作的方式
console.log(snapshot);
答案 0 :(得分:4)
使用snapshot.ref.getDownloadURL()
答案 1 :(得分:1)
2019年11月更新来自 firebase 的官方文档:
function(){
uploadTask.snapshot.ref.getDownloadURL().then(function(downloadURL) {
console.log('File available at', downloadURL);
});
});
答案 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();