【发布时间】:2021-07-27 03:16:40
【问题描述】:
这是我第一次在网络应用中使用 firebase。
在我的代码中,我试图添加一个节点,子节点缩略图是 undefined 并且没有被添加到 firebase 数据库中。
请提供一个解决方案,因为我尝试以不同的方式重写相同的代码,但是
uploadTask.snapshot.downloadURL
总是返回未定义
提前感谢您的帮助。 PFB JS 代码和 firebase 控制台截图。
var database = firebase.database().ref("categories/"+catname);
database.once("value").then(function(snapshot){
if(snapshot.exists()){
$("#result").attr("class","alert alert-danger");
$("#result").html("Category already exist");
}else{
var name = thumbnail["name"];
var ext = name.substring(name.lastIndexOf("."),name.length);
var thumbname = new Date().getTime();
var storageRef = firebase.storage().ref(catname+"/"+thumbname+ext);
const ref = firebase.storage().ref(catname+"/"+thumbname+ext);
var uploadTask = storageRef.put(thumbnail);
uploadTask.on("state_changed",
function progress(snapshot){
var percentage = (snapshot.bytesTransferred/snapshot.totalBytes)*100;
$("#upload-progress").html(percentage+"%");
$("#upload-progress").attr("style","width:"+percentage+"%");
},
function error(err){
},
function complete(snapshot){
var thumbURL = uploadTask.snapshot.downloadURL;
console.log(thumbURL);
console.log(uploadTask.snapshot.downloadURL);
var cat = {
"thumbnail":thumbURL||null,
"desc":desc||null
};
database.set(cat,function(err){
if(err){
$("#result").attr("class","alert alert-danger");
$("#result").html(err.message);
} else {
$("#result").attr("class","alert alert-success");
$("#result").html("Category created successfully");
}
});
}
);
}
});
【问题讨论】:
标签: javascript node.js firebase firebase-storage