firebase
Execute Firebase operations for Firestore, Realtime Database, Storage, and Auth.
Overview
Execute Firebase operations for Firestore, Realtime Database, Storage, and Auth.
Supports operations: - Firestore: get, query, set, update, delete, add documents - Realtime Database: get, set, update, delete data - Cloud Storage: upload, download, delete files, get URLs - Authentication: create, get, update, delete users, verify tokens
Setup: 1. Create a Firebase project at https://console.firebase.google.com/ 2. Go to Project Settings > Service Accounts 3. Click "Generate New Private Key" to download the service account JSON 4. Store the JSON securely (e.g., as environment variable: FIREBASE_CREDENTIALS) 5. Enable the services you need (Firestore, Realtime Database, Storage, Auth) in the Firebase Console
Service Account: - Required. Download from https://console.firebase.google.com/project/_/settings/serviceaccounts - Keep the JSON file secure - it grants admin access to your Firebase project - Do not commit credentials to version control - Use environment variables or secure secret management
Examples
Query Firestore documents
Query users over 18 years old
type: firebase
credentials: ${env:FIREBASE_CREDENTIALS}
operation: firestore_query
collection: users
where:
- field: age
op: ">="
value: 18
order_by: created_at
direction: desc
limit: 100
output_to: users
Get Firestore document
Retrieve a specific user document
type: firebase
credentials: ${env:FIREBASE_CREDENTIALS}
operation: firestore_get
collection: users
document_id: ${user.id}
output_to: user_data
Add Firestore document
Create a new document with auto-generated ID
type: firebase
credentials: ${env:FIREBASE_CREDENTIALS}
operation: firestore_add
collection: events
data:
type: user_signup
user_id: ${user.id}
timestamp: ${meta.timestamp}
metadata:
ip: ${request.ip}
user_agent: ${request.user_agent}
output_to: event_id
Update Firestore document
Update specific fields in a document
type: firebase
credentials: ${env:FIREBASE_CREDENTIALS}
operation: firestore_update
collection: users
document_id: ${user.id}
data:
last_login: ${meta.timestamp}
login_count: ${user.login_count}
output_to: update_result
Get Realtime Database data
Retrieve data from Realtime Database
type: firebase
credentials: ${env:FIREBASE_CREDENTIALS}
operation: realtime_get
path: users/${user.id}/profile
output_to: profile_data
Set Realtime Database data
Set data at a specific path
type: firebase
credentials: ${env:FIREBASE_CREDENTIALS}
operation: realtime_set
path: users/${user.id}/status
data:
online: true
last_seen: ${meta.timestamp}
output_to: status_result
Upload file to Storage
Upload a file to Cloud Storage
type: firebase
credentials: ${env:FIREBASE_CREDENTIALS}
operation: storage_upload
path: avatars/${user.id}/profile.jpg
file_data: ${file.base64_data}
content_type: image/jpeg
output_to: upload_result
Get Storage download URL
Get a public URL for a stored file
type: firebase
credentials: ${env:FIREBASE_CREDENTIALS}
operation: storage_get_url
path: documents/${document.id}.pdf
output_to: download_url
Create Firebase user
Create a new user account
type: firebase
credentials: ${env:FIREBASE_CREDENTIALS}
operation: auth_create_user
user_email: ${user.email}
user_password: ${user.password}
data:
displayName: ${user.name}
emailVerified: false
output_to: new_user
Verify Firebase token
Verify and decode a Firebase ID token
type: firebase
credentials: ${env:FIREBASE_CREDENTIALS}
operation: auth_verify_token
id_token: ${auth.token}
output_to: token_data
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
credentials | string | Yes | Firebase service account credentials JSON (as string or base64) or path to credentials file |
operation | string | Yes | Operation to perform: firestore_* (Cloud Firestore), realtime_* (Realtime Database), storage_* (Cloud Storage), auth_* (Authentication)
Options: firestore_get, firestore_query, firestore_set, firestore_update, firestore_delete, firestore_add, realtime_get, realtime_set, realtime_update, realtime_delete, storage_upload, storage_download, storage_delete, storage_get_url, auth_create_user, auth_get_user, auth_update_user, auth_delete_user, auth_verify_token |
collection | string | No | Firestore collection name (required for firestore operations) |
document_id | string | No | Firestore document ID (required for get, set, update, delete operations) |
where | string | No | Firestore query filters (list of {field, op, value} dicts). Operators: ==, !=, <, <=, >, >=, in, not-in, array-contains, array-contains-any |
order_by | string | No | Field to order results by (Firestore query) |
direction | string | No | Sort direction for order_by (asc or desc) |
limit | string | No | Maximum number of documents to return (Firestore query) |
data | string | No | Data to set, update, or add to Firestore/Realtime Database |
path | string | No | Path in Realtime Database or Cloud Storage |
file_data | string | No | Base64 encoded file data or file content for upload |
content_type | string | No | MIME type for storage upload |
user_email | string | No | User email for auth operations |
user_password | string | No | User password for auth_create_user |
user_id | string | No | Firebase user UID for auth operations |
id_token | string | No | Firebase ID token to verify (for auth_verify_token) |
timeout | integer | No | Request timeout in seconds
Default: 30 |
output_to | string | No | Key name where the response will be stored in the event
Default: "firebase" |
Base Configuration
These configuration options are available on all steps:
| Parameter | Type | Default | Description |
|---|---|---|---|
name | | null | Optional name for this step (for documentation and debugging) |
description | | null | Optional description of what this step does |
retries | integer | 0 | Number of retry attempts (0-10) |
backoff_seconds | number | 0 | Backoff (seconds) applied between retry attempts |
retry_propagate | boolean | false | If True, raise last exception after exhausting retries; otherwise swallow. |