Skip to main content

Firebase Realtime Database

Overview​

The Firebase Realtime Database source supports Full Refresh sync of one stream per source. Configure Node Path to select the JSON node to sync. To sync multiple paths independently, create a source for each path.

Resulting schema​

The connector emits one record for each immediate child of the selected node, with two string fields:

  • key: the child's key.
  • value: the child's value serialized as JSON. Nested objects remain inside this string.

For example, if store-a/users contains:

{
"liam": { "address": "somewhere", "age": 24 },
"olivia": { "address": "somewhere", "age": 30 }
}

Set Node Path to store-a/users to sync these records:

[
{"key": "liam", "value": "{\"address\": \"somewhere\", \"age\": 24}"},
{"key": "olivia", "value": "{\"address\": \"somewhere\", \"age\": 30}"}
]

The stream name is the final segment of Node Path, with hyphens replaced by underscores. For this example, the stream name is users. If you leave Node Path empty, the connector uses Database Name, with hyphens replaced by underscores, as the stream name.

Features​

FeatureSupportedNotes
Full Refresh SyncYes
Incremental SyncNo
Change Data CaptureNo
SSL SupportYes

Getting started​

Requirements​

To use the Firebase Realtime Database source, you'll need:

  • A Firebase project with a Realtime Database instance and its database URL.
  • A Google Cloud service account with the Firebase Realtime Database Viewer role (roles/firebasedatabase.viewer) in that project.
  • A service account key in JSON format.

Select a node whose data is a JSON object keyed by child names, as shown in the record example. The connector expects key-value pairs at this level. Select the parent object rather than an individual scalar value.

Service account​

  1. Create a service account, or use an existing one. A dedicated account makes it easier to manage and audit Airbyte's access.
  2. Grant the service account access to your project with the Firebase Realtime Database Viewer role. Use the service account's email address, such as <account-name>@<project-name>.iam.gserviceaccount.com, as the principal.

The connector authenticates through the Firebase Admin SDK. Its connection check reads the database root's keys, even when Node Path selects a child node.

Service account key​

Follow Google's Create and delete service account keys guide to create and download a JSON key for the service account. Airbyte requires the contents of the JSON file, rather than its filename. After saving the credentials in Airbyte, delete the local copy of the downloaded file.

Set up the Firebase Realtime Database source in Airbyte​

Create a Firebase Realtime Database source in Airbyte and enter the following settings:

  • Database Name: the name of your database (for databases in us-central1, this is the <database_name> in https://<database_name>.firebaseio.com). If your database is in another region (for example europe-west1 or asia-southeast1), enter the full database URL or hostname instead, e.g. https://<database_name>.europe-west1.firebasedatabase.app. You can find the URL in the Firebase console; see Realtime Database locations.
  • Service Account Key JSON: the contents of your Service Account Key JSON file.
  • Node Path [Optional]: the path within the database to sync, such as store-a/users. Enter a node path without the database URL or a .json suffix. Leave it empty to sync the root node.
  • Buffer Size [Optional]: the number of child records to fetch per request. The default is 10000. Use an integer of at least 2: pagination includes the previous page's last key, so a buffer size of 1 stops after the first record.

Limitations​

  • Each sync reads all records at the configured path.
  • An empty or nonexistent node produces no records.
  • Firebase limits each read response to 256 MB and queries to paths containing at most 75 million nodes. See Realtime Database limits for current quotas. If a read exceeds the response size limit, reduce Buffer Size or select a smaller subtree with Node Path. Each request includes the child's nested data, so reducing Buffer Size can't split an oversized child value.

IP allow list​

If you use Airbyte Cloud and your organization restricts access to specific IPs, add the Airbyte Cloud IP addresses to your allow list.

Reference​

Config fields reference

Field
Type
Property name
string
database_name
string
google_application_credentials
number
buffer_size
string
path

Changelog​

Expand to review
VersionDatePull RequestSubject
0.1.562026-11-1190912Drop support for Python 3.10; Python package installations require Python 3.11–3.13
0.1.552026-11-1091505Update dependencies
0.1.542026-11-0390548Update dependencies
0.1.532026-10-2789874Update dependencies
0.1.522026-10-2089214Update dependencies
0.1.512026-10-1379248Update dependencies
0.1.502026-10-0788178Support databases outside us-central1 by accepting a full database URL/hostname (*.firebasedatabase.app) in Database Name; upgrade to airbyte-cdk 7 / Python 3.13 so the image builds on the current base image
0.1.492026-06-0278673Update dependencies
0.1.482025-05-2460381Update dependencies
0.1.472025-05-1059978Update dependencies
0.1.462025-05-0359371Update dependencies
0.1.452025-04-2658854Update dependencies
0.1.442025-04-1958347Update dependencies
0.1.432025-04-1257755Update dependencies
0.1.422025-04-0557229Update dependencies
0.1.412025-03-2956477Update dependencies
0.1.402025-03-2255992Update dependencies
0.1.392025-03-0855297Update dependencies
0.1.382025-03-0154911Update dependencies
0.1.372025-02-2254371Update dependencies
0.1.362025-02-1553755Update dependencies
0.1.352025-02-0152844Update dependencies
0.1.342025-01-2552328Update dependencies
0.1.332025-01-1851639Update dependencies
0.1.322025-01-1151105Update dependencies
0.1.312025-01-0450924Update dependencies
0.1.302024-12-2850561Update dependencies
0.1.292024-12-2150006Update dependencies
0.1.282024-12-1449186Update dependencies
0.1.272024-11-2548653Starting with this version, the Docker image is now rootless. Please note that this and future versions will not be compatible with Airbyte versions earlier than 0.64
0.1.262024-11-0447041Update dependencies
0.1.252024-10-1246799Update dependencies
0.1.242024-10-0546457Update dependencies
0.1.232024-09-2846135Update dependencies
0.1.222024-09-2145804Update dependencies
0.1.212024-09-1445505Update dependencies
0.1.202024-09-0745272Update dependencies
0.1.192024-08-3145055Update dependencies
0.1.182024-08-2444674Update dependencies
0.1.172024-08-1744299Update dependencies
0.1.162024-08-1243795Update dependencies
0.1.152024-08-1043600Update dependencies
0.1.142024-08-0343092Update dependencies
0.1.132024-07-2742609Update dependencies
0.1.122024-07-2042260Update dependencies
0.1.112024-07-1341900Update dependencies
0.1.102024-07-1041469Update dependencies
0.1.92024-07-0640816Update dependencies
0.1.82024-06-2940628Update dependencies
0.1.72024-06-2640538Update dependencies
0.1.62024-06-2540328Update dependencies
0.1.52024-06-2240181Update dependencies
0.1.42024-06-0639200[autopull] Upgrade base image to v1.2.2
0.1.32024-06-0338910Replace AirbyteLogger with logging.Logger
0.1.22024-06-0338910Replace AirbyteLogger with logging.Logger
0.1.12024-05-2038416[autopull] base image + poetry + up_to_date
0.1.02022-10-16#18029🎉 New Source: Firebase Realtime Database.