-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
Package + Version
@sentry/serverless
6.2.0
Description
Firebase offers a few extra types of cloud functions that do not implement the same interface as the existing GCPFunction options. It seems like these work as expected but the typings do not allow a typescript project to compile.
Primarily the ones I am most interested today are the Cloud Firestore triggers and Authentication triggers. The remaining can be found in the docs: https://firebase.google.com/docs/functions/firestore-event
Here are some examples:
const thingCreateHandler = (snap, context) => {}
export const thingCreated = functions.firestore
.document('things/{id}')
.onCreate(Sentry.GCPFunction.wrapEventFunction(thingCreateHandler))
Argument of type 'EventFunctionWithCallback' is not assignable to parameter of type '(snapshot: QueryDocumentSnapshot, context: EventContext) => any'.ts(2345)
const userCreateHandler = (user, context) => {}
export const userCreate = functions.auth.user().onCreate(
Sentry.GCPFunction.wrapEventFunction(userCreateHandler)
);
Argument of type 'EventFunctionWithCallback' is not assignable to parameter of type '(user: UserRecord, context: EventContext) => any'.ts(2345)
This is what the interface looks like:
- Cloud Firestore Triggers:
/** Respond to all document writes (creates, updates, or deletes). */
onWrite(handler: (change: Change<DocumentSnapshot>, context: EventContext) => PromiseLike<any> | any): CloudFunction<Change<DocumentSnapshot>>;
/** Respond only to document updates. */
onUpdate(handler: (change: Change<QueryDocumentSnapshot>, context: EventContext) => PromiseLike<any> | any): CloudFunction<Change<QueryDocumentSnapshot>>;
/** Respond only to document creations. */
onCreate(handler: (snapshot: QueryDocumentSnapshot, context: EventContext) => PromiseLike<any> | any): CloudFunction<QueryDocumentSnapshot>;
/** Respond only to document deletions. */
onDelete(handler: (snapshot: QueryDocumentSnapshot, context: EventContext) => PromiseLike<any> | any): CloudFunction<QueryDocumentSnapshot>;
- Authentication Triggers:
/** Respond to the creation of a Firebase Auth user. */
onCreate(handler: (user: UserRecord, context: EventContext) => PromiseLike<any> | any): CloudFunction<UserRecord>;
/** Respond to the deletion of a Firebase Auth user. */
onDelete(handler: (user: UserRecord, context: EventContext) => PromiseLike<any> | any): CloudFunction<UserRecord>;
Metadata
Metadata
Assignees
Type
Projects
Status