on Firestore and Storage events
on Firestore events
Run Cloud functions on database events. They are non-blocking: they run after writes. We use the term sanitization instead of validation, since they don't prevent writes.
sanitize data post-write
export const onUserWritten = onDocumentWritten("users/{docId}", (event) => {
const change = event.data
const docId = event.params.docId
const before = change.before.data()
const after = change.after.data()
})
on Storage events
sanitize data post-upload
the user uploads a file to Firebase Storage. Sanitize data post-upload. For example:
exports.generateThumbnail = functions.storage.object().onFinalize(async (file) => {
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.
})