Loading...
Loading...
Skill for converting an installed Firebase Extension (or extension source) into a standalone Cloud Functions for Firebase codebase or publishable npm package, including V1 to V2 trigger upgrades, lifecycle hooks, and declarative security
npx skill4agent add hoangsoft90/ai_skills extension-to-functions-codebasefunctions/src/functions/src/.envfirebase deploy --only functionspackage.jsonexportsengines: { "node": ">=22" }peerDependencies: { "firebase-functions": ">=6.0.0" }index.tsexport * from "<package-name>"gcloudrequiresRole("roles/...")requiresAPI("service.googleapis.com", "Description").value()onInit()import { defineString } from "firebase-functions/params";
import { onInit } from "firebase-functions/v2";
const dataset = defineString("DATASET_ID");
let client: BigQuery;
onInit(() => {
client = new BigQuery({ datasetId: dataset.value() });
});cpu: "gcf_gen1"extension.yamlparamsdefineStringdefineIntdefineBooleandefineSecretapisrequiresAPI(...)rolesrequiresRole(...)lifecycleEventsafterFirstDeployafterRedeployresourcesonDocumentWrittenonTaskDispatchedonRequestjestpackage.jsonname: "<package-name>"engines: { "node": ">=22" }peerDependencies"peerDependencies": {
"firebase-admin": "^11.0.0 || ^12.0.0",
"firebase-functions": ">=6.0.0"
}exportslib/index.jslib/index.d.tsonDocumentWrittenfirebase-functions/v2/firestoreonTaskDispatchedfirebase-functions/v2/tasksEXT_INSTANCE_IDonRequestfirebase-functions/v2/https{ change, context }{ snapshot, context }(change, context)src/index.tsonInstallafterFirstDeploy({ task: { function: "initTask" } })onUpdateonConfigureafterRedeploy({ task: { function: "setupTask" } })README.mdnpm installexport * from "<package-name>".envnpm publish