Aurabase Logo
aurabasedocs
docs›Guides›Firebase Migration

Migrate from Firebase

Step-by-step guide to moving your Firestore data, Firebase Auth users, and buckets to Aurabase's open, high-performance infrastructure.

11 min read·Level intermediate·Revised on Aug 19, 2026
This English text was generated automatically from the French original and has not been reviewed yet.
#
Comparison

Matching Firebase Bricks

Aurabase replaces each proprietary Firebase component with standard, open, self-hosting technology without vendor lock-in:

FirebaseAurabaseAurabase Advantage

Cloud FirestoreHigher equivalent PostgreSQL (relational + SQL) OR Aurabase NoSQL (MongoDB-style)

Firebase AuthSame & enriched Same OAuth support, MFA TOTP, magic links, password

Firebase StorageSame & enriched S3 SeaweedFS REST API with on-the-fly image transformations

Cloud FunctionsSameEdge Functions Deno standard (Deno.serve()) + WASM

Security RulesSuperiorPostgres RLS (Row-Level Security) evaluated directly in base

Firebase Realtime DBSameAurabase Realtime (CDC, Presence, Broadcast via NATS/WebSockets)

#
Map

4-step roadmap

  1. Schema & Data — Choice of model (PostgreSQL relational or NoSQL collections) and import (15 min)
  2. Authentication — Export Firebase Auth users and import scrypt/bcrypt hashes without reset (10 min)
  3. Storage files — Synchronization of Cloud Storage buckets to Aurabase Storage (variable depending on volume)
  4. SDK replacement — Replacing firebase/* with @aurabase/aurabase-js
#
Data

From Firestore to Aurabase

You can either normalize your data in PostgreSQL to take advantage of the power of SQL and strict typing, or import it directly into Aurabase's NoSQL Document Store engine:

Attention

Roadmap — not available. The aura commands shown below are planned and not delivered yet: the CLI does not have them today.

import-firestore.shbash
# 1. Export Firestore to JSONL file
npx firestore-export --serviceAccount credentials.json --output firestore-export.jsonl

# 2. Import into the Aurabase NoSQL engine
aura db nosql-import firestore-export.jsonl --collection users --project-id <id>

# 3. Generating complete TypeScript types
npx @aurabase/gen --out src/aurabase.types.ts
#
Auth

Frictionless user migration

Attention

Roadmap — not available. The aura auth import command and the import of Firebase password hashes (scrypt) are planned and not delivered yet: the CLI and Aurabase Auth do not have them today. Until then, create the users with the admin API (aura.authAdmin.createUser) and have them set a new password or sign in with a magic link.

The plan: keep Firebase's password hashes so that users keep their credentials without a password reset.

migrate-auth.shbash
# Exporting users from Firebase CLI
firebase auth:export users.json --format=JSON --project my-firebase-app

# Import into Aurabase Auth (preserves hashes & tokens)
aura auth import users.json --provider firebase --env prod
#
Storage

Synchronizing S3 buckets

Aurabase Storage uses a standard S3 API. You can sync your files continuously from Google Cloud Storage with the rclone or aws-cli utility:

sync-buckets.shbash
# Direct transfer from GCS to Aurabase Storage
rclone sync gcs:my-firebase-bucket s3:aurabase-storage-bucket \
  --s3-endpoint https://api.aurabase.cloud/v1/storage/$PROJECT_ID \
  --s3-access-key-id $AURABASE_SERVICE_ROLE_KEY \
  --progress
#
Code

Replacing the Client SDK

comparison.tstypescript
// BEFORE (Firebase)
import { getFirestore, doc, getDoc } from 'firebase/firestore'
const snap = await getDoc(doc(db, 'users', 'u1'))
const user = snap.data()

// AFTER (Aurabase)
import { createClient } from '@aurabase/aurabase-js'
const { data: user } = await aura.from('users').select('*').eq('id', 'u1').single()
Last updated · Aug 19, 2026