首页 > 解决方案 > 从 Firebase 获取图片网址

问题描述

我正在将图像上传到 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

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

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)

标签: javascriptfirebasefirebase-storage

解决方案


snapshot变量的类型为,UploadTaskSnapshot没有storageRef子级。您可能正在寻找snapshot.ref

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

推荐阅读