Andrew Young
Andrew Young

Reputation: 734

Firebase Functions: Random 404's

I'm using firebase functions on a server for API calls. Everything works fine 70% of the time, but all of a sudden some of my function calls start failing to execute, giving my API a 404, and don't work for the next few hours.

In my StackDriver I can see the function isn't called again when I try. My API just gives me a 404 without ever reaching the server.

Below is one of the calls that fails once in a while. Going to the URL i'm fetching, the GET result always shows up, so I have no clue what the issue is.

API call:

const getCreators = () => {
  return window
    .fetch(url + '/get-creators', {
      method: 'GET',
      headers: {
        'Content-Type': 'application/json',
      },
    })
    .then((res) => {
      console.log(res);
      if (res.status === 200) {
        return res.json();
      } else {
        return null;
      }
    })
    .then((data) => {
      if (!data || data.error) {
        return null;
      } else {
        return data;
      }
    });
};

Server code:

const app = express();

  app.get('/get-creators', async (req, res) => {
    console.log('creators: ');
    creators
      .find()
      .toArray()
      .then((result) => {
        console.log(result);
        res.status(200).send(result);
      })
      .catch(() => {
        console.log('error');
        res.send('error');
      });
  });

app.listen(4242, () => console.log(`Node server listening at https ${4242}!`));

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

Upvotes: 0

Views: 132

Answers (1)

Andrew Young
Andrew Young

Reputation: 734

Found it. You don't want the below code on your server:

app.listen(4242, () => console.log(`Node server listening at https ${4242}!`));

I commented this code out, republished, and all is well.

I thought having this didn't make a difference, but apparently once in a blue moon it can and will try to make the server listen locally, which gave me a 404.

Upvotes: 1

Related Questions