Произошла ошибка при разборе вашей функции запускает firebase - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь реализовать загрузку изображений в реакции, используя firebase storgae, и я сталкиваюсь с ошибкой «Произошла ошибка при разборе вашей функции вызывает firebase», когда я запускаю firebase deploy в cmd. Я не могу понять, откуда исходит ошибка. Ошибка видна внизу кода.

const functions = require("firebase-functions");
const cors = require("cors")({origin: true});

const Busboy = require("busboy");
const fs = require("fs");

const gcconfig = {
    projectId: "abcdefgh-13ff0",
    keyFilename: "abcdefgh-13ff0-firebase-adminsdk-abcdefgh.json"
}

const gcs = require("@google-cloud/storage")(gcconfig);
// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
//  response.send("Hello from Firebase!");
// });


exports.uploadFile = functions.https.onRequest((req, res) => {
    cors(req, res, () => {
        if (req.method !== "POST"){
            return res.status(500).json({
                message: "Not Allowed"
            });
        }
        const busboy = new Busboy({headers: req.headers});
        let uploadData = null;
        busboy.on("file", (fieldname, file, filename, encoding, mimetype) => {
            const filepath = path.join(os.tmpdir(), filename);
            uploadData = {file: filepath, type: mimetype};
            file.pipe(fs.createWriteStream(filepath));
        });

        busboy.on("finish", () => {
            const bucket = gcs.bucket("gs://abcdefgh-13ff0.appspot.com");
            bucket.upload(uploadData.file, {
                uploadType: "media",
                metadata: {
                    metadata: {
                        contentType: uploadData.type
                    }
                }
            })
            .then(() => {
               return res.status(200).json({  
                    message: "It worked"
                });
            })
            .catch(err => {
                return res.status(500).json({
                    error: err
                });
            });
            return;
        });
        busboy.end(req.rawBody);    
        return null;  
    });   
});

Это ошибка

Error: Error occurred while parsing your function triggers.

C:\Users\Joseph\node_modules\streamsearch\lib\sbmh.js:1
(function (exports, require, module, __filename, __dirname) {


SyntaxError: Invalid or unexpected token
at new Script (vm.js:74:7)
at createScript (vm.js:246:10)
at Object.runInThisContext (vm.js:298:10)
at Module._compile (internal/modules/cjs/loader.js:670:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Module.require (internal/modules/cjs/loader.js:650:17)
at require (internal/modules/cjs/helpers.js:20:18)

1 Ответ

0 голосов
/ 16 мая 2019

ошибка, которую вы испытываете, может быть 1 из 2 вещей, но, вероятно, оба вместе ...

  1. Файл keyFileName (abcdefgh-13ff0-firebase-adminsdk-abcdefgh.json) должен находиться в папке src, чтобы к нему можно было напрямую получить доступ.

  2. Вы должны отредактировать эти строки кода:

const gcconfig = {

projectId: "abcdefgh-13ff0",

keyFilename: "abcdefgh-13ff0-firebase-adminsdk-abcdefgh.json"

}

const gcs = require("@google-cloud/storage")(gcconfig);

ЧИТАТЬ ВМЕСТО:

const gcs = require('@google-cloud/storage')

gcs.projectId ='abcdefgh-13ff0'

gcs.keyFilename = 'abcdefgh-13ff0-firebase-adminsdk-abcdefgh.json'

// Насколько я понимаю, это должно решить проблему, с которой вы столкнулись!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...