WHAT I LOOKED AT:
THOUGHTS:
I currently store the images locally and store the image paths in the Firebase realtime database. I would like to store the images in the GCloud (to reduce costs).
QUESTION:
HOW SHOULD I MODIFY MY CURRENT CODE TO UPLOAD TO THE GCLOUD ?
CURRENT CODE:
var express = require("express");
var router = express.Router();
var flash = require("connect-flash");
var firebase = require("firebase");
var multer = require("multer");
var upload = multer({dest:"./public/images/uploads/", limits: {fileSize: 250000}}).single("image");
router.get("/", function(req, res, next){
    if (firebase.auth().currentUser == null) {
        global.page_name = "login";
        res.render("users/login");
    }
    else {
        global.page_name = "upload";
        res.render("upload");
    }
});
router.post("/", function(req, res, next){
    upload(req,res, function (err) {
        if (err) {
            req.flash("error_msg", "File too large. Max Size: 250KB");
            res.redirect("/upload"); 
            return
        }
        var title = req.body.title;
        var section = req.body.section;
        // Validation
        req.checkBody('title', 'Title is required').notEmpty();
        req.checkBody('title', 'Title is too long, max: 50 charachters !').len(0,50);
        req.checkBody('section', 'Section is required').notEmpty();
        var errors = req.validationErrors();
        if(errors){
            res.render('upload', {
                errors: errors
            });
        }
        else {
            if (req.file){
                console.log("Uploading file...");
                var image = req.file.filename;
                var section = req.body.section.toLowerCase();
                var IDref = firebase.database().ref("posts/"+section+"/lastID");
                IDref.once("value", function(IDsnapshot){
                    var number = IDsnapshot.val();
                    var postRef = firebase.database().ref("posts/"+section).push();
                    var UID = postRef.key;
                    var post = {
                        title: req.body.title,
                        section: req.body.section,
                        image: image,
                        author: firebase.auth().currentUser.uid,
                        section:  section,
                        upvotes: 0,
                        downvotes: 0,
                        id: number + 1,
                        key: UID
                    }
                    IDref.set(post.id);
                    postRef.set(post);
                    var authoredPost = {
                        title: req.body.title,
                        section: section,
                    }
                    var userRef = firebase.database().ref("users/"+firebase.auth().currentUser.uid.toString()+"/posts/"+UID.toString());
                    userRef.set(authoredPost);
                });
                req.flash("success_msg", "Post Created");
                res.redirect("/upload"); 
            }
            else {
                console.log("No file uploaded");
                req.flash("error_msg", "Image is required");
                res.redirect("/upload");
            }
        }
    });
});
module.exports = router;
				
                        
i think its better to use firebase.storage in web or app to upload directly to the GCloud but you can use this code to solve your problem