node.jsfirebasegoogle-cloud-functionsfirebase-hostingfirebase-cli

Firebase and Node.js application results in the requested URL was not found on this server for the firebase serve command


I have created a Node.js application and trying to deploy in the Firebase for hosting. Before deploying, I am making sure that it will work properly using the command firebase serve --only hosting,function. This command creates the server and I am able to access the Home page of the application using the URL (localhost:5000) provided by Firebase but for some reason, my Angularjs HTTP request is unable to find the Node.js controller due to which I am getting the 404 URL not found error in the brwoser.

As soon as the index.html is accessed using the localhost:5000 I am trying to populate various dropdown options in my frontend. These options are present within the Node.js controller file populator.js. Hence I am making an HTTP request from angularjs to my node.js controller but I get the 404 URL not found error. I am guessing there is some issue with folder structure or the firebase.json file due to which the code is unable to find my Node.js controller.

My firebase.json file:

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "function": "app"
      }
    ]
  }
}

My index.js file:

const   functions                   =   require("firebase-functions");
const   express                     =   require('express');
const   app                         =   express();

//call function to popultae the fields
app.get('/populateFields', function(req,res){
    populateFields.BusinessStep(function(data){
        res.send(data);
    });
});

exports.app      =   functions.https.onRequest(app);

Here is my folder structure

Firebase Hosting (root)
    |--functions
        |---index.js
        |---package.json
    |
    --public
        |---index.html
    |
    --firebase.json
    --.firebaserc

I tried running the command firebase serve --only hosting,function in both the root directory and within the functions folder but none worked and still getting the error The requested URL was not found on this server.

I found many post related to this issue but could not find there solution after trying the methods mentioned there hence posting this question.


Solution

  • I was running the command wrongly so I was getting that issue the actual command is

    firebase serve --only functions,hosting

    If anyone is facing the issue then run the command correctly.