on Firestore and Storage events
on Firestore events
Run Cloud functions on database events. They are non-blocking: they run after writes. As they don't prevent writes, we don't call it validation. Instead we use the term sanitization.
sanitize data post-write
List of Cloud Firestore triggers.
For example, onDocumentWritten triggers on:
- onDocumentCreated
- onDocumentUpdated
- onDocumentDeleted
export const onUserWritten = onDocumentWritten("users/{docId}", (event) => {
const docId = event.params.docId // string
const change = event.data
// Change<QueryDocumentSnapshot | DocumentSnapshot> | undefined
const before = change?.before.data() // DocumentData | undefined
const after = change?.after.data() // DocumentData | undefined
})
on Storage events
sanitize data post-upload
the user uploads a file to Firebase Storage. Sanitize data post-upload. For example:
import { onObjectFinalized } from "firebase-functions/v2/storage"
export const generateThumbnail = onObjectFinalized(async (event) => {
const file = event.data
// const fileBucket = file.bucket;
// const filePath = file.name;
// const contentType = file.contentType;
// const metageneration = file.metageneration;
// // Number of times metadata has been generated. New objects have a value of 1.
})