Firebase functions are not the same as Google Cloud Run functions so the way we interact with them is different. Local development and deployment both use the firebase
command.
This repo loosely follows this firebase get started document. It also borrows from this discussion although when I use the latter as is I get an infinite loop error when attempting to run the function in the firebase emulator.
The directory structure has been flattened somewhat so that src, package.json, and the various firebase files are at the root level instead of under a functions directory.