When an error occurs in my cloud function it is not showing up in the firebase console or logs as an error.
I would like the error to show up on the health tab of functions page in the Firebase console so I am aware of the error. Currently it only shows up in the function logs as a normal log entry (see image).
How can I adjust my code so that an error occurs in the cloud function so I can see it. Note that this function is called by a webhook from Stripe.
export const stripeWHEInvoiceCreated = functions
.region('us-east1')
.https.onRequest(async (req, res) => {
try {
const sig = req.headers['stripe-signature'];
const event = stripe.webhooks.constructEvent(
(req as any).rawBody,
sig,
webhookSecretInvoiceCreated
);
await internalInvoiceCreated(event);
res.sendStatus(200);
} catch (err) {
res.status(400).send(err);
}
});
export const internalInvoiceCreated = async(event: any) => {
try {
// Do stuff
} catch(err) {
console.log('An error occurred');
console.log(err);
throw err;
}
return;
}
CodePudding user response:
The easiest thing to do is use console.error()
instead of console.log()
.
If you want to do logging the best possible way, you should use the logging functions of the functions SDK, as shown in the documentation.
const functions = require("firebase-functions");
functions.logger.error(...);