尝试获取文件URL的Firebase存储访问时出现错误400

Ron*_*man 3 javascript firebase ionic-framework firebase-storage

我正在尝试使用ionic和firebase平台,但遇到了问题。

因此,我在尝试访问的存储中有一个图像,我尝试使用getDownloadURL()方法,但始终收到错误400,“无效的http方法/ URL对”。我找不到任何解决方案。尝试使用getMetadata()时出现相同的错误。

firebase已初始化,目前一切正常,身份验证,数据库读取等等。除了这个错误...

我在服务中有以下代码。

// Get a reference to the storage service, which is used to create references in your storage bucket
var storage = firebase.storage();

// Create a storage reference from our storage service
var storageRef = storage.ref();

// Create a child reference
var imagesRef = storageRef.child('images');
// imagesRef now points to 'images'

return {
    getImgRef: function (imgName) {
        var imgRef = imagesRef.child('Tanker.ico')
        imgRef.getDownloadURL().then(function (url) {
            return url
        }).catch(function(error) {
            switch (error.code) {
                case 'storage/object_not_found':
                    // File doesn't exist
                    break;

                case 'storage/unauthorized':
                    // User doesn't have permission to access the object
                    break;

                case 'storage/canceled':
                    // User canceled the upload
                    break;

                case 'storage/unknown':
                // Unknown error occurred, inspect the server response
                    break;
            }
        });

    }
}
Run Code Online (Sandbox Code Playgroud)

一切顺利,直到getDownloadURL(),如果我尝试getMetadata()的话,一切都一样。

这个问题有帮助吗?

小智 2

尝试使用完整图像路径,如下所示

// Get a reference to the storage service, which is used to create references in your storage bucket
    var storage = firebase.storage();

    // Create a storage reference from our storage service
    var storageRef = storage.ref();

    // Create a child reference
    var imagesRef = storageRef.child('images/Tanker.ico');
    // imagesRef now points to 'images'

    return {
        getImgRef: function (imgName) {
            //var imgRef = imagesRef.child('Tanker.ico')
            imagesRef.getDownloadURL().then(function (url) {
                return url
            }).catch(function(error) {
                switch (error.code) {
                    case 'storage/object_not_found':
                        // File doesn't exist
                        break;

                    case 'storage/unauthorized':
                        // User doesn't have permission to access the object
                        break;

                    case 'storage/canceled':
                        // User canceled the upload
                        break;

                    case 'storage/unknown':
                    // Unknown error occurred, inspect the server response
                        break;
                }
            });

        }
    }
Run Code Online (Sandbox Code Playgroud)