Firebase Wrapper
Overview
Firebase Wrapper
Firebase is Google's app development platform, trusted by millions of businesses to build and run mobile and web apps. It provides managed infrastructure for authentication, real-time data, storage, and AI-powered features, backed by Google Cloud.
The Firebase Wrapper brings your Firebase app data into Postgres as queryable tables. Query it directly with SQL and join it against your relational data. Both supported objects are read-only, and the wrapper works with Supabase Vault for secure service account credential management.
Supported Objects
| Firebase Object | Description |
|---|---|
| Authentication Users | Read user accounts from Firebase Auth |
| Firestore Database Documents | Read documents from Firestore collections |
Preparation
Before you get started, make sure the wrappers extension is installed on your database:
_10create extension if not exists wrappers with schema extensions;
and then create the foreign data wrapper:
_10create foreign data wrapper firebase_wrapper_10 handler firebase_fdw_handler_10 validator firebase_fdw_validator;
Secure your credentials (optional)
By default, Postgres stores FDW credentials inside pg_catalog.pg_foreign_server in plain text. Anyone with access to this table will be able to view these credentials. Wrappers is designed to work with Vault, which provides an additional level of security for storing credentials. We recommend using Vault to store your credentials.
_10select vault.create_secret(_10 '{_10 "type": "service_account",_10 "project_id": "your_gcp_project_id",_10 ..._10 }',_10 'firebase',_10 'Firebase API key for Wrappers'_10);
Connecting to Firebase
We need to provide Postgres with the credentials to connect to Firebase, and any additional options. We can do this using the create server command:
With Vault:
_10create server firebase_server_10 foreign data wrapper firebase_wrapper_10 options (_10 sa_key_id '<key_ID>',_10 project_id '<firebase_project_id>'_10 );
Without Vault:
_10create server firebase_server_10 foreign data wrapper firebase_wrapper_10 options (_10 sa_key '{_10 "type": "service_account",_10 "project_id": "your_gcp_project_id",_10 ..._10 }',_10 project_id 'firebase_project_id'_10 );
Resources
Details
Third-party integrations and docs are managed by Supabase partners.