step

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.