Skip to main content

Firebase


Firebase JavaScript Client


Firebase Functions

Boilerplate Typed Function

import * as cors from 'cors';
const corsHandler = cors({origin: true});

interface IMyFunctionRequest {
data: {
userID: string,
serialNumbers: string
} | undefined;
};

export const myFunction = functions
.runWith({ timeoutSeconds: 540, memory: "8GB" })
.https
.onRequest(async (request: TypedRequest<IMyFunctionRequest>,
response: functions.Response) => {

// Get input data...
const requestData = request.body.data;
const userID = (requestData) ? requestData.userID : "";
const serialNumbers = (requestData) ? requestData.serialNumbers : "";

// Get data...
corsHandler(request, response, async () => {
try
{
// Do something...
const result = 3;
response.send({ data: result });
}
catch(error: any)
{
functions.logger.error("Error", error);
response.sendStatus(500);
}
});
});

Set Timeout / Memory Allocation

functions.runWith({ timeoutSeconds: 540, memory: "8GB" })

onUserDelete

export const onUserDelete = functions
.runWith({ timeoutSeconds: 540, memory: "8GB" })
.auth.user().onDelete(async (user: functions.auth.UserRecord) => {

// Tasks (example: delete user records)...
await admin.database().ref("clients").child(user.uid).remove();
await admin.firestore().collection("pubsub_nightlyRefresh").doc(user.uid).delete();

return Promise.resolve();
});