【问题标题】:getting undefined value for uploadTask.snapshot.downloadURL in firebase [duplicate]在firebase中获取uploadTask.snapshot.downloadURL的未定义值[重复]
【发布时间】: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


    【解决方案1】:

    UploadTaskSnapshot 的 downloadURL 属性似乎是 deprecated firebase examples 建议使用ref,如

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-27
      • 2021-04-15
      • 2021-12-11
      相关资源
      最近更新 更多