代码之家  ›  专栏  ›  技术社区  ›  raginggoat

从Firebase获取图像URL

  •  0
  • raginggoat  · 技术社区  · 5 年前

    我上传了一个图像到firebase,然后我试图检索的URL一旦上传完成,但我得到这个错误。

    [Error] Error uploading image:  – TypeError: undefined is not an object (evaluating 'snapshot.storageRef.getDownloadURL') — speakers.js:150
    TypeError: undefined is not an object (evaluating 'snapshot.storageRef.getDownloadURL') — speakers.js:150
        (anonymous function) (speakers.js:161)
        promiseReactionJob
    

    图片上传得很好,但我没有得到网址。

    var storageRef = firebase.storage().ref();
    
    function uploadPhoto() {
        if (selectedFile != null) {
            var filePath = "Speaker Images/" + selectedFile.name + Date.now();
            var upload = storageRef.child(filePath).put(selectedFile).then(function(snapshot) {
                snapshot.storageRef.getDownloadURL().then(function(downloadUrl) {
                    console.log(downloadUrl);
                    uploadImageUrl = downloadUrl;
                    if (docId != null) {
                        updateSpeaker();
                    } else {
                        createNewSpeaker();
                    }
                });
            })
            .catch(function(error) {
                console.error("Error uploading image: ", error);
            });
        } else {
            if (docId != null) {
                updateSpeaker();
            } else {
                createNewSpeaker();
            }
        }
    }
    

    快照看起来不错。

    [Log] Ee {bytesTransferred: 30255, totalBytes: 30255, state: "success", metadata: Object, task: e, …} (speakers.js, line 150)
    
    1 回复  |  直到 5 年前
        1
  •  2
  •   puf - Frank van Puffelen    5 年前

    这个 snapshot 变量的类型为 UploadTaskSnapshot ,它没有 storageRef 孩子。你可能在找 snapshot.ref :

    snapshot.ref.getDownloadURL().then(function(downloadUrl) {
        ...