从Firebase功能上传到存储的图像无法同时在Firebase控制台和浏览器上预览

时间:2020-01-05 11:47:31

标签: node.js firebase google-cloud-functions firebase-storage

我遇到了一个问题,我无法弄清楚到底是什么问题。我曾尝试检查类似问题,但找不到任何问题。我尝试使用功能将图像上传到Firebase存储。例如,客户端从其本地PC上传图像,然后由Firebase功能对其进行处理。之所以有效,是因为我可以看到在Firebase存储器上上传的图像。

问题是,每当我尝试在浏览器中打开公共URL时,它都不会打开。我还尝试从Firebase存储控制台打开图像,即使该图像无法预览也无法打开。它会永远保持加载状态。

Image cannot be previewed

PS:使用Firebase存储sdk时一切正常,但不能正常运行,因此我不认为这是SO this

所说的区域性问题

Firebase功能代码

    api.post('/v1/event/image/upload', async (req, res) => {
    const response = {};

    var form = new formidable.IncomingForm();
    form.maxFileSize = 200 * 1024 * 1024;
    form.multiples = true;

    return new Promise((resolve, reject) => {
        form.parse(req, (err, fields, files) => {
            //console.log(err, fields, files);
            var file = files.file;
            if (err) {
                response.status = 300;
                response.message = 'Error: ' + err.message;
                response.data = [];
                return res.status(300).json(response);
            }

            var filePath = file.path;//path.join(file.path, file.name);//file.path;
            console.log('File path: ' + filePath, file);

            let fileName = new Date().getTime();
            var bucket = admin.storage().bucket('{bucket-url}');

            return bucket.upload(filePath, {
                destination: 'media/eventz/' + fileName,
                metadata: {
                    contentType: file.type,
                    metadata: {
                        custom: 'metadata'
                    }
                }
            }).then((photo) => {
                var config = [];
                var configObj = {
                    key: fileName,
                    caption: fileName,
                    size: file.size,
                    url: photo[0].metadata.mediaLink //downloadUrl:  // the url to download the file
                };
                config.push(configObj);
                var preview = [];
                preview.push(photo[0].metadata.mediaLink);
                //response.status = 200;
                //response.message = currentTimestamp;
                response.initialPreview = preview;
                response.initialPreviewConfig = config;
                response.initialPreviewThumbTags = [];
                response.initialPreviewAsData = true;
                return res.status(200).json(response);
            }).catch((err) => {
                response.status = 500;
                response.message = 'Error: ' + err.message;
                response.data = [];
                return res.status(500).json(response);
            });
        });
    }).then(() => {
        response.status = 200;
        response.message = 'Image was not uploaded, please try again';
        response.data = [];
        return res.status(200).json(response);
    }).catch(err => {
        response.status = 500;
        response.message = 'Error: ' + err.message;
        response.data = [];
        return res.status(500).json(response);
    });

});

0 个答案:

没有答案