Reference · Tools

Google Firebase Realtime Database

Create, delete, get, push, and update records in a Google Firebase Realtime Database.

Action Data & Storage v1

The Google Firebase Realtime Database node lets you create, read, update, delete, and push records to any path in your RTDB instance directly from a workflow. You could use it to log incoming webhook events as timestamped entries under a /logs path, or sync order data from an e-commerce trigger into a live database your mobile app reads in real time.

Node type
Action
Parameters
11
Outputs
Output, Error
Credentials
Google Firebase Realtime Database OAuth2

Google Firebase Realtime Database

Create, get, update, delete, and push records in Google Firebase Realtime Database.

Overview

Interacts with the Firebase Realtime Database REST API. Create (PUT) overwrites a path with data built from selected item fields; Delete (DELETE) removes a path and returns { success: true }; Get (GET) retrieves the data at a path (a null response raises “Requested entity was not found”); Push (POST) appends to a list at a path with an auto-generated key; Update (PATCH) merges partial data into a path.

The database URL is built as https://{projectId}.{region}/{path}.json, so the Project ID you enter is the database instance subdomain and the Region is the host suffix. Non-object scalar responses are wrapped as { [path]: value } so they always arrive as JSON.

Category: Data & Storage
Tool Name: google_firebase_realtime_database
Version: 1

Appearance: Icon: lucide-Database | Color: #FFA000

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Google Firebase Realtime Database OAuth2 credentials. See the Credentials Guide for setup instructions.

Operations

OperationValueDescription
CreatecreateWrite data to a database path (PUT — overwrites existing data).
DeletedeleteDelete data from a database path.
GetgetGet a record from a database path.
PushpushAppend to a list of data with an auto-generated key.
UpdateupdateUpdate (merge) data at a database path.

Parameters

Create (create)

ParameterTypeRequiredDefaultDescription
Object PathstringYesObject path in the database. Do not include a leading slash or .json suffix. Example: “users/user1”. Supports expressions like {{ $json.userId }}.
Columns / AttributesstringYesComma-separated list of field names to pick from the input item’s JSON and send as the request body.

Delete (delete)

ParameterTypeRequiredDefaultDescription
Object PathstringYesObject path in the database. Do not include a leading slash or .json suffix. Example: “users/user1”. Supports expressions like {{ $json.userId }}.

Get (get)

ParameterTypeRequiredDefaultDescription
Object PathstringNoObject path in the database. Do not include a leading slash or .json suffix. Leave blank to return the entire database. Supports expressions.

Push (push)

ParameterTypeRequiredDefaultDescription
Object PathstringYesObject path in the database. Do not include a leading slash or .json suffix. Example: “users/user1”. Supports expressions like {{ $json.roomId }}.
Columns / AttributesstringYesComma-separated list of field names to pick from the input item’s JSON and send as the request body.

Update (update)

ParameterTypeRequiredDefaultDescription
Object PathstringYesObject path in the database. Do not include a leading slash or .json suffix. Example: “users/user1”. Supports expressions like {{ $json.userId }}.
Columns / AttributesstringYesComma-separated list of field names to pick from the input item’s JSON and send as the request body.

All Operations

ParameterTypeRequiredDefaultDescription
AuthenticationoptionsNooAuth2Authentication method to use.
Options: oAuth2, serviceAccount
Google AccountcredentialNoConnect or select your Google account. (shown when Authentication is oAuth2)
Service Account EmailstringYesThe email address of the Google service account. (shown when Authentication is serviceAccount)
Private KeystringYesThe private key from the service account JSON key file. (shown when Authentication is serviceAccount)
Project IDstringYesThe Realtime Database instance name. This is the subdomain of your database URL (e.g. “my-app-default-rtdb” from “my-app-default-rtdb.firebaseio.com”), NOT the Firebase project ID.
RegionoptionsNofirebaseio.comThe region/host suffix for the Firebase Realtime Database URL.
Options: firebaseio.com (default region), europe-west1.firebasedatabase.app, asia-southeast1.firebasedatabase.app
Max ConcurrencynumberNo5Maximum number of items to process concurrently.

Output Data

Each input item produces exactly one output item. The data returned by the Firebase REST API is merged into the top level of the item’s JSON, so the incoming fields stay available alongside the response.

OperationWhat is merged onto the item
createThe object written to the path.
deletesuccess: true.
getThe data stored at the path. A scalar value (string or number) is wrapped as { "<path>": value }; an empty path returns the whole database.
pushname — the auto-generated key Firebase assigned to the new list entry.
updateThe merged object returned for the path.

A get against a path that holds no data raises “Requested entity was not found” rather than returning an empty item, so it can be routed through the Error port.

Usage Examples

  • Write a new user record to Firebase Realtime Database
  • Get data from a Firebase database path
  • Push a new message to a Firebase list with an auto-generated key
  • Update specific fields of a Firebase database record
  • Delete a node from a Firebase Realtime Database path
  • Store sensor readings in a Firebase time-series list
  • Read the entire database root object

Example Configuration

Write a user record, overwriting anything already at that path:

{
  "type": "google_firebase_realtime_database",
  "parameters": {
    "operation": "create",
    "projectId": "my-app-default-rtdb",
    "region": "firebaseio.com",
    "path": "users/{{ $json.userId }}",
    "attributes": "name,email,role,createdAt"
  }
}

Read one record back:

{
  "type": "google_firebase_realtime_database",
  "parameters": {
    "operation": "get",
    "projectId": "my-app-default-rtdb",
    "region": "firebaseio.com",
    "path": "users/{{ $json.userId }}"
  }
}

Append a chat message to a list and let Firebase generate the key:

{
  "type": "google_firebase_realtime_database",
  "parameters": {
    "operation": "push",
    "projectId": "messaging-app-rtdb",
    "region": "firebaseio.com",
    "path": "chatrooms/{{ $json.roomId }}/messages",
    "attributes": "text,userId,timestamp",
    "maxConcurrency": 10
  }
}

Merge a status change into an existing record without replacing it:

{
  "type": "google_firebase_realtime_database",
  "parameters": {
    "operation": "update",
    "projectId": "status-tracker-rtdb",
    "region": "firebaseio.com",
    "path": "users/{{ $json.userId }}/status",
    "attributes": "isOnline,lastSeen"
  }
}

Delete a node from a European database instance:

{
  "type": "google_firebase_realtime_database",
  "parameters": {
    "operation": "delete",
    "projectId": "my-eu-app-default-rtdb",
    "region": "europe-west1.firebasedatabase.app",
    "path": "products/{{ $json.productId }}"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Read, write, update, delete, and push records in Google Firebase Realtime Database using the REST API.

  • Project ID is the database subdomain, not the Firebase project. Take the first label of your database URL — my-app-default-rtdb from https://my-app-default-rtdb.firebaseio.com.
  • Region must match the database. Databases created outside the United States use europe-west1.firebasedatabase.app or asia-southeast1.firebasedatabase.app; using the wrong suffix points at a host that does not exist.
  • Columns / Attributes filters the request body. Only the named fields are read off the input item and sent, so upstream metadata does not leak into the database. A field that is missing from the item is simply omitted.
  • Create replaces, Update merges. Use Create when the path should end up exactly as described, Update when you only want to change a few keys.
  • Push returns the generated key as name — capture it downstream if you need to address the new entry later.

Frequently asked questions

What is the Project ID field, and where do I find it?

The Project ID here is your database instance subdomain, not your Firebase console project name. Look at your database URL — if it reads `https://my-app-default-rtdb.firebaseio.com`, the Project ID to enter is `my-app-default-rtdb`. Using the full URL or your Firebase project ID will cause the request to fail.

My database is hosted in Europe or Asia — does that matter?

Yes, and getting this wrong points requests at a host that does not exist. Databases outside the United States use a region-specific suffix: `europe-west1.firebasedatabase.app` or `asia-southeast1.firebasedatabase.app`. The node builds the URL as `https://{projectId}.{region}/{path}.json`, so the Region field must match the actual host your database was created on.

What is the difference between Create and Update?

Create issues a PUT request, which completely overwrites the data at the given path with whatever fields you send. Update issues a PATCH, which merges your fields into the existing data without touching keys you did not include. Use Create when the path should contain exactly what you specify; use Update when you only need to change a few fields on a record that already exists.

When I use Push, how do I get the new record's key for later steps?

Push appends data to a list at the path you specify and Firebase assigns an auto-generated key. The node returns that key in a field called `name` in the output. Capture it in a downstream step if you need to read, update, or delete that specific entry later.

What does the Columns / Attributes parameter do, and why does it matter?

It controls which fields from the upstream item are included in the request body sent to Firebase. Only the field names you list are read off the input item — anything else, including internal workflow metadata, is left out. If a listed field is missing from the item it is simply omitted rather than causing an error, so this filter also acts as a safe way to send a consistent subset of data regardless of what else is on the item.

Build with the Google Firebase Realtime Database node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Google Firebase Realtime Database OAuth2 credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.