Cloud Functions management for deploying, configuring, and monitoring serverless functions in Firebase projects.
Lists all deployed Cloud Functions in the project.
/**
* List deployed Cloud Functions
* @param options - Command options
* @returns Promise resolving to array of function information
*/
function list(options?: Options): Promise<Array<{
name: string;
status: string;
trigger: {
httpsTrigger?: {
url: string;
};
eventTrigger?: {
eventType: string;
resource: string;
};
};
runtime: string;
availableMemoryMb: number;
timeout: string;
environmentVariables?: Record<string, string>;
}>>;Usage Examples:
const client = require("firebase-tools");
// List all functions
const functions = await client.functions.list({
project: "my-project"
});
console.log("Deployed functions:", functions.map(f => f.name));Deletes one or more Cloud Functions.
/**
* Delete Cloud Functions
* @param functionName - Name of function to delete, or comma-separated list
* @param options - Delete options
* @returns Promise resolving when deletion completes
*/
function deleteFunctions(
functionName: string,
options?: Options & {
/** Force deletion without confirmation */
force?: boolean;
}
): Promise<void>;Usage Examples:
// Delete a single function
await client.functions.delete("myFunction", {
project: "my-project",
force: true
});
// Delete multiple functions
await client.functions.delete("func1,func2,func3", {
project: "my-project"
});Retrieves and displays Cloud Functions execution logs.
/**
* View Cloud Functions logs
* @param options - Log viewing options
* @returns Promise resolving when log viewing completes
*/
function log(options?: Options & {
/** Number of log lines to retrieve */
lines?: number;
/** Filter logs by text content */
filter?: string;
/** Open logs in browser */
open?: boolean;
/** Follow logs in real-time */
tail?: boolean;
}): Promise<void>;Usage Examples:
// View recent logs
await client.functions.log({
project: "my-project",
lines: 100
});
// Filter logs by function name
await client.functions.log({
project: "my-project",
filter: "myFunction"
});
// Follow logs in real-time
await client.functions.log({
project: "my-project",
tail: true
});Starts an interactive shell for testing Cloud Functions locally.
/**
* Start interactive Functions shell
* @param options - Shell configuration options
* @returns Promise resolving when shell session ends
*/
function shell(options?: Options & {
/** Port for shell server */
port?: number;
/** Host for shell server */
host?: string;
}): Promise<void>;Usage Examples:
// Start interactive shell
await client.functions.shell({
project: "my-project",
port: 5001
});Retrieves Cloud Functions runtime configuration variables.
/**
* Get function configuration
* @param options - Configuration options
* @returns Promise resolving to configuration object
*/
function configGet(options?: Options & {
/** Specific config key to retrieve */
key?: string;
}): Promise<Record<string, string>>;Sets Cloud Functions runtime configuration variables.
/**
* Set function configuration
* @param configData - Configuration key-value pairs
* @param options - Set options
* @returns Promise resolving when configuration is set
*/
function configSet(
configData: Record<string, string> | string,
options?: Options
): Promise<void>;Removes Cloud Functions runtime configuration variables.
/**
* Unset function configuration
* @param keys - Configuration keys to remove
* @param options - Unset options
* @returns Promise resolving when configuration is removed
*/
function configUnset(
keys: string | string[],
options?: Options
): Promise<void>;Copies configuration from one project to another.
/**
* Clone function configuration
* @param options - Clone options
* @returns Promise resolving when configuration is cloned
*/
function configClone(options?: Options & {
/** Source project ID */
from: string;
/** Destination project ID */
to?: string;
/** Only clone specific keys */
only?: string;
/** Skip specific keys */
except?: string;
}): Promise<void>;Exports function configuration to a file.
/**
* Export function configuration
* @param options - Export options
* @returns Promise resolving when configuration is exported
*/
function configExport(options?: Options & {
/** Output file path */
dest?: string;
}): Promise<void>;Configuration Usage Examples:
// Get all configuration
const config = await client.functions.config.get({
project: "my-project"
});
// Get specific configuration key
const apiKey = await client.functions.config.get({
project: "my-project",
key: "api.key"
});
// Set configuration
await client.functions.config.set({
"api.key": "your-api-key",
"db.url": "https://your-db.firebaseio.com"
}, { project: "my-project" });
// Set single configuration value
await client.functions.config.set("api.timeout=30", {
project: "my-project"
});
// Remove configuration
await client.functions.config.unset(["api.key", "old.setting"], {
project: "my-project"
});
// Clone configuration between projects
await client.functions.config.clone({
from: "source-project",
to: "dest-project"
});Creates or updates a secret for Cloud Functions.
/**
* Set function secret
* @param secretName - Name of the secret
* @param options - Secret configuration options
* @returns Promise resolving when secret is set
*/
function secretsSet(
secretName: string,
options?: Options & {
/** Secret value (if not provided interactively) */
data?: string;
/** Data file containing secret value */
dataFile?: string;
}
): Promise<void>;Retrieves metadata about a secret (not the secret value).
/**
* Get secret metadata
* @param secretName - Name of the secret
* @param options - Command options
* @returns Promise resolving to secret metadata
*/
function secretsGet(
secretName: string,
options?: Options
): Promise<{
name: string;
createTime: string;
labels?: Record<string, string>;
}>;Retrieves the actual value of a secret.
/**
* Access secret value
* @param secretName - Name of the secret
* @param options - Access options
* @returns Promise resolving to secret value
*/
function secretsAccess(
secretName: string,
options?: Options & {
/** Secret version to access */
version?: string;
}
): Promise<string>;Shows detailed information about a secret.
/**
* Describe secret details
* @param secretName - Name of the secret
* @param options - Command options
* @returns Promise resolving when description is displayed
*/
function secretsDescribe(
secretName: string,
options?: Options
): Promise<void>;Permanently deletes a secret.
/**
* Destroy secret
* @param secretName - Name of the secret
* @param options - Destroy options
* @returns Promise resolving when secret is destroyed
*/
function secretsDestroy(
secretName: string,
options?: Options & {
/** Force destruction without confirmation */
force?: boolean;
}
): Promise<void>;Removes secrets that are no longer referenced by any functions.
/**
* Prune unused secrets
* @param options - Prune options
* @returns Promise resolving when pruning completes
*/
function secretsPrune(options?: Options & {
/** Force pruning without confirmation */
force?: boolean;
/** Dry run - show what would be pruned */
dryRun?: boolean;
}): Promise<void>;Secrets Usage Examples:
// Set a secret interactively
await client.functions.secrets.set("api-key", {
project: "my-project"
});
// Set a secret from file
await client.functions.secrets.set("database-cert", {
project: "my-project",
dataFile: "./db-cert.json"
});
// Get secret metadata
const metadata = await client.functions.secrets.get("api-key", {
project: "my-project"
});
// Access secret value
const secretValue = await client.functions.secrets.access("api-key", {
project: "my-project"
});
// Destroy secret
await client.functions.secrets.destroy("old-secret", {
project: "my-project",
force: true
});
// Prune unused secrets
await client.functions.secrets.prune({
project: "my-project",
dryRun: true
});Configure artifact retention policies for Cloud Functions.
/**
* Set artifact retention policy for Cloud Functions
* @param options - Policy configuration options
* @returns Promise resolving when policy is set
*/
function artifactsSetpolicy(options?: Options & {
/** Retention policy configuration */
policy?: string;
/** Maximum number of versions to retain */
maxVersions?: number;
}): Promise<void>;Remove old Cloud Functions artifacts to save storage space.
/**
* Delete old Cloud Functions artifacts (experimental feature)
* @param options - Deletion options
* @returns Promise resolving when artifacts are deleted
*/
function deletegcfartifacts(options?: Options & {
/** Force deletion without confirmation */
force?: boolean;
/** Dry run - show what would be deleted */
dryRun?: boolean;
}): Promise<void>;Artifacts Usage Examples:
// Set artifact retention policy
await client.functions.artifacts.setpolicy({
project: "my-project",
maxVersions: 10
});
// Delete old artifacts (requires deletegcfartifacts experiment)
await client.functions.deletegcfartifacts({
project: "my-project",
dryRun: true
});