Skills

Firebase Cloud Functions

Use when calling callable functions (httpsCallable), passing data to server-side logic...

Install

npx skills add evanca/flutter-ai-rules --skill firebase-cloud-functions -g -a claude-code -y
Category
Testing
Updated
5d ago
License
MIT
Context cost
Lightabout 1,063 tokens
Runs scripts
No, instructions only

What it does

Use when calling callable functions (httpsCallable), passing data to server-side logic, handling function errors/timeouts, configuring regions, or testing with the Emulator Suite.

Firebase Cloud Functions Skill

This skill defines how to correctly call Firebase Cloud Functions from Flutter applications.

When to Use

Use this skill when:

  • Implementing callable Cloud Functions in a Flutter project.
  • Passing structured data to server-side functions and processing results.
  • Handling errors, timeouts, and retries for function calls.
  • Configuring region-specific function deployments.
  • Testing Cloud Functions locally with the Firebase Emulator Suite.

1. Setup and Configuration

flutter pub add cloud_functions
import 'package:cloud_functions/cloud_functions.dart';

// After Firebase.initializeApp():
final functions = FirebaseFunctions.instance;
  • Initialize Firebase before using any Cloud Functions features.
  • For region-specific deployments, specify the region:
final functions = FirebaseFunctions.instanceFor(region: 'europe-west1');
  • Deploy callable functions to Firebase before attempting to call them from the Flutter app.
  • Consider implementing App Check to prevent abuse of Cloud Functions.

2. Calling Functions

Use httpsCallable to reference a function, then call to invoke it:

final result = await FirebaseFunctions.instance
  .httpsCallable('functionName')
  .call(data);
  • Pass data as a Map, it is automatically serialized to JSON:
final result = await FirebaseFunctions.instance
  .httpsCallable('addMessage')
  .call({
    "text": messageText,
    "push": true,
  });
  • Access the result via the data property, it is automatically deserialized from JSON:
final responseData = result.data;
// Cast to expected type if needed:
final message = result.data as Map<String, dynamic>;
final status = message['status'] as String;
  • Do not pass authentication tokens in function parameters, they are automatically included by the SDK.
  • Keep function names consistent between client code and server-side implementations.

Read the whole SKILL.md on GitHub

More in Testing