· supabase / firebase / database

Supabase vs Firebase (2026): Postgres hay NoSQL?

Supabase chạy Postgres với SQL đầy đủ. Firebase chạy Firestore và không có SQL. Ở mức 100K MAU, khoảng cách chi phí là 12×. Đây là lúc mỗi lựa chọn phù hợp.

Bởi Ethan

2.446 từ · 13 phút đọc

Dùng Supabase khi bạn cần SQL, muốn tự host, hoặc đang xây dựng các tính năng AI. Dùng Firebase khi bạn cần offline sync trên mobile, hoặc đã đầu tư sâu vào hệ sinh thái Google. Với hầu hết web app mới trong năm 2026, Supabase là lựa chọn mặc định tốt hơn — chỉ riêng bài toán chi phí cũng đủ khiến Firebase khó biện minh khi bạn vượt qua ngưỡng 50K người dùng.

Dành cho ai

Các developer đang chọn backend-as-a-service cho dự án mới. Đặc biệt nếu dữ liệu của bạn có cấu trúc quan hệ, hoặc bạn đang xây dựng stack TypeScript với Prisma hay Drizzle. Nếu bạn đã chạy Firebase trên production và chưa gặp vấn đề gì, bài này không phải lý do để migrate.

Phiên bản được đề cập

  • Supabase v1.26.05 (phát hành 2026-05-07) — giấy phép Apache 2.0, 102.385 GitHub stars, đang được merge hàng ngày tính đến 2026-05-15
  • Firebase — nền tảng độc quyền của Google Cloud: Firestore, Realtime Database, Cloud Functions gen2 (gen1 đã ngừng hỗ trợ cho dự án mới), Authentication, Cloud Storage

Kiến trúc database quyết định tất cả

Supabase cung cấp cho bạn một Postgres instance chuyên dụng. Firebase cung cấp Firestore — một NoSQL document store không có SQL, không có JOIN, và truy vấn chỉ trong phạm vi collection.

Đây không phải sở thích cá nhân. Nó quyết định cách bạn mô hình hóa dữ liệu, những query bạn có thể viết, và toàn bộ kiến trúc hạ tầng.

Với Supabase, một SaaS multi-tenant với workspaces, projects, tasks, users, và audit logs là một database duy nhất. Bạn query bằng SQL. Row-Level Security policies nằm ngay trong Postgres — cùng RLS đó quản trị API, file storage, và Edge Functions. Một mô hình phân quyền duy nhất, áp dụng ở khắp nơi.

Với Firebase, cùng ứng dụng đó đòi hỏi Firestore collections cho từng loại tài nguyên, denormalization thủ công để tránh các lần đọc tốn kém từ nhiều collection, và logic join phía client khi hiển thị dữ liệu liên quan. Giới hạn miễn phí 50K lượt đọc/ngày của Firestore rất dễ vượt qua trong app có nhiều read trước khi bạn đạt đến quy mô đáng kể.

Nếu bạn xuất thân từ SQL — và hầu hết backend developer đều vậy — Postgres vs MySQL giải thích tại sao Postgres đã trở thành lựa chọn mặc định cho các dự án mới trong năm 2026. Supabase xây dựng trên nền tảng đó.


So sánh tính năng

Tính năngSupabaseFirebase
DatabasePostgres chuyên dụng (v15+), SQL đầy đủ, ACIDFirestore (NoSQL document) hoặc Realtime Database (NoSQL tree)
SchemaQuan hệ, có kiểu dữ liệu, foreign keys, indexesSchemaless documents, không có JOIN
AuthEmail, magic link, OTP, OAuth (20+ providers), phone, SSO/SAML, OIDCEmail, OAuth, phone, anonymous
Real-timeBroadcast, Presence, Postgres ChangesRealtime Database WebSocket sync + Firestore snapshot listeners
Serverless functionsEdge Functions trên Deno 2.x — mạng edge toàn cầuCloud Functions gen2 — các region trên Google Cloud
File storageS3-compatible (MinIO), áp dụng RLS policiesGoogle Cloud Storage
Vector / AIpgvector tích hợp sẵn — similarity search, RAGKhông có hỗ trợ vector native
Self-hostingDocker Compose stack đầy đủ — Fly.io, Railway, mọi VPSKhông có — chỉ Google Cloud
Offline syncKhông cóFirestore có offline persistence đầy đủ
Open sourceCó (Apache 2.0)Không
Mobile SDKsJS/TS, Dart/Flutter, Swift, Kotlin — hệ sinh thái còn trẻiOS, Android, Flutter, Unity — hơn 10 năm phát triển
Google ecosystemĐộc lậpAnalytics, Crashlytics, Remote Config, FCM, App Distribution
ComplianceSOC2 + ISO 27001 trên gói Team ($599/tháng); HIPAA là add-on trả phíGoogle Cloud compliance: SOC1/2/3, ISO, HIPAA trên Blaze

Chi phí: khoảng cách 12× ở mức 100K MAU

Supabase tính phí theo gói cố định. Firebase tính phí theo mức sử dụng. Sự chênh lệch tích lũy nhanh khi bạn vượt các giới hạn miễn phí của Firebase.

Supabase Pro — $25/tháng bao phủ khá nhiều

Gói Pro ở mức $25/tháng bao gồm 100K MAU, 8 GB database, 250 GB băng thông, 100 GB storage, và 2 triệu lần gọi Edge Function mỗi tháng. Ở đúng các ngưỡng đó, hóa đơn là $25/tháng.

Firebase Blaze — chi phí theo đơn vị tích lũy nhanh

Gói miễn phí Spark của Firebase khá hào phóng ở quy mô nhỏ. Nhưng Firebase Authentication tính phí theo MAU vượt 50K: $0.0055 mỗi user trong khoảng 50K–100K. Với app 100K MAU, riêng authentication đã tốn $275/tháng trước khi bạn chạm vào Firestore reads hay writes.

Ví dụ tính toán — SaaS app 100K MAU (5 GB dữ liệu, 30 triệu Firestore reads/tháng, 3 triệu writes/tháng, 50 GB băng thông, 10 GB storage, 500K lần gọi function):

Mục chi phíSupabase ProFirebase Blaze
Gói cơ bản / auth$25.00Auth: $275.00
Firestore reads (28.5M billable ở $0.06/100K)$17.10
Firestore writes (2.4M billable ở $0.18/100K)$4.32
Storage (10 GB — trong giới hạn bao gồm)$0.00$0.13
Functions (500K — trong giới hạn miễn phí)$0.00$0.00
Băng thông (50 GB — trong giới hạn bao gồm)$0.00$0.00
Tổng cộng~$25/tháng~$297/tháng

Ở mức 100K MAU, Firebase tốn khoảng 12× so với Supabase — chủ yếu do phí authentication tính theo MAU vượt 50K. Ở 10K MAU trở xuống, cả hai gần như không có chi phí và gói Spark của Firebase không có phí cơ bản. Ngưỡng vượt qua đó mới là điều quan trọng cần lưu ý.

Gói miễn phí Supabase: tự động tạm dừng khi không hoạt động

Dự án miễn phí Supabase sẽ tạm dừng sau 1 tuần không hoạt động. Với app đang hoạt động thì điều này không quan trọng. Nhưng với indie hacker đang chạy MVP với lượng traffic lẻ tẻ, request đầu tiên sau một khoảng im lặng sẽ bị trễ do cold-wake. Gói Spark của Firebase không có hành vi tương đương — đáng lưu ý nếu bạn đang so sánh hai gói miễn phí.


Cold start của Edge Functions: Supabase trung bình 42ms

Supabase Edge Functions chạy trên Deno 2.x trên mạng edge toàn cầu. Firebase Cloud Functions gen2 chạy trên Node.js tại các region cụ thể của Google Cloud.

Benchmark nội bộ năm 2025 của Supabase đo hiệu năng cold start của Edge Function sau các cải tiến runtime:

  • Trung bình: 42ms
  • P95: 86ms
  • P99: 460ms

Google không công bố con số latency cold start chính thức cho Firebase Cloud Functions gen2. Tài liệu của Firebase thừa nhận rằng “cold start có thể mất một khoảng thời gian đáng kể” và khuyến nghị cấu hình minimum instances cho các function nhạy cảm về latency. Với các webhook endpoint, real-time API, và edge-rendered response, Supabase Edge Functions có profile P95 dưới 100ms được ghi nhận. Supabase Edge Functions chạy trên Deno 2.x, đã giải quyết hầu hết các vấn đề tương thích npm trong lịch sử trong khi vẫn giữ DX ưu tiên TypeScript.


Khả năng mở rộng kết nối và giới hạn Realtime

Connection pooler Supavisor của Supabase đã xử lý 1.003.200 kết nối đồng thời trên hai instance 64-core trong load testing, với median query duration dưới 2ms ở 5.000 QPS. Benchmark đó không phải trường hợp điển hình, nhưng nó cho thấy không có giới hạn ẩn nào cần lo ngại.

Firebase Realtime Database giới hạn 200.000 kết nối đồng thời mỗi instance trên Blaze, với tối đa 1.000 write operations mỗi giây mỗi database. Mở rộng theo chiều ngang đòi hỏi sharding thủ công qua nhiều database instance — và Firestore queries không thể trải rộng qua nhiều instance.


pgvector vs. các vector database bên ngoài

Supabase tích hợp pgvector ngay từ đầu. Nếu bạn đang xây dựng RAG pipeline, document search, hay bất kỳ tính năng dựa trên embedding nào, vector index của bạn nằm trong cùng database Postgres với dữ liệu quan hệ. Một query duy nhất có thể join dữ liệu có cấu trúc với kết quả vector similarity.

Firebase không có khả năng vector. Bạn phải kết nối Pinecone, Weaviate, hay Qdrant như một service riêng biệt, quản lý auth giữa các service, trả hai hóa đơn, và xây dựng plumbing để đồng bộ cập nhật document qua cả hai store.

Trong benchmark của Supabase, pgvector trên instance Supabase 2XL đạt nhiều hơn 1.185% queries per second so với gói Pinecone tương đương ở mức 0.98 recall — với chi phí thấp hơn. Khoảng cách không phải nhỏ.


Khi nào nên chọn Supabase

SaaS app với dữ liệu quan hệ. Users, workspaces, projects, roles, audit logs — bất cứ thứ gì có foreign keys và joins. Postgres + RLS xử lý multi-tenant isolation bằng SQL mà không cần workaround phía client.

Tính năng AI và semantic search. pgvector được tích hợp sẵn. Một database xử lý dữ liệu quan hệ, full-text search, và vector similarity. Không cần provision hay đồng bộ service bên ngoài.

Serverless functions nhạy cảm với latency. Supabase Edge Functions cold start trung bình 42ms (P95: 86ms). Firebase Cloud Functions gen2 chạy Node.js container theo region mà không có SLA latency được công bố — tài liệu Firebase thừa nhận cold start “có thể mất một khoảng thời gian đáng kể.”

Tự host hoặc yêu cầu data residency. Docker Compose stack đầy đủ chạy được trên Fly.io, Railway, Hetzner, hoặc on-prem. Apache 2.0 nghĩa là không bị lock-in theo giấy phép — migrate sang self-hosted mà không cần viết lại app. Firebase khóa bạn vào Google Cloud và không có đường thoát.

Stack TypeScript-first. Supabase có tích hợp first-class với Next.js và Astro, bao gồm client library có kiểu và Auth helpers. Câu hỏi Prisma hay Drizzle là riêng biệt — cả hai ORM đều hoạt động với Postgres của Supabase.


Khi nào nên chọn Firebase

App mobile real-time multiplayer hoặc offline-first. Offline persistence native của Firebase Realtime Database, WebSocket sync, và conflict resolution xử lý những phần khó nhất của offline mode trên mobile. Supabase không có tương đương native — tự xây dựng không hề đơn giản.

Đã đầu tư vào hệ sinh thái mobile Google. Nếu app của bạn đã dùng Firebase Analytics, Crashlytics, Remote Config, và FCM push notifications, thêm Firestore không tốn thêm bất kỳ chi phí SDK nào. Tách dữ liệu sang Supabase trong khi giữ Firebase cho analytics đồng nghĩa với hai SDK cho một app. Điều đó chỉ xứng đáng nếu kiến trúc dữ liệu thực sự là điểm nghẽn.

MVP công khai nhanh với traffic lẻ tẻ. Gói Spark của Firebase không có phí cơ bản và không tự dừng dự án. Gói miễn phí Supabase tự dừng dự án không hoạt động. Nếu bạn đang ship một demo hoặc side project lượng traffic thấp và có khoảng trống giữa các lần truy cập, gói miễn phí luôn bật của Firebase đơn giản hơn.


Kết luận

Chọn Supabase nếu:

  • Dữ liệu của bạn có cấu trúc quan hệ, hoặc sẽ trở nên quan hệ khi sản phẩm phát triển.
  • Bạn đang xây dựng tính năng AI và muốn vector search nằm cùng chỗ với dữ liệu.
  • Bạn đang tiếp cận hoặc đã vượt 50K MAU — bài toán chi phí rõ ràng trên ngưỡng đó.
  • Bạn muốn có khả năng tự host hoặc cần đáp ứng yêu cầu data residency.
  • Bạn đang dùng TypeScript stack và muốn Postgres có kiểu dữ liệu với RLS.

Chọn Firebase nếu:

  • Bạn cần offline-first sync trên mobile — đây là lợi thế rõ ràng nhất của Firebase và khó tái tạo nhất.
  • Bạn đã đầu tư sâu vào hệ sinh thái mobile Google và không muốn duy trì hai SDK.
  • Bạn đang ship MVP công khai với lượng traffic thấp và muốn gói miễn phí không rắc rối.

Với các dự án backend mới trong năm 2026, Supabase là khuyến nghị mặc định. Firebase chiếm ưu thế ở các workload cụ thể — mobile offline và lock-in vào hệ sinh thái Google — không phải backend nói chung.


Lưu ý

  • Chi phí có thể thay đổi. Đặc biệt là giá của Firebase thường thay đổi mà không có thông báo công khai. Ví dụ tính toán sử dụng mức giá đã được xác minh vào 2026-05-16. Hãy tự tính con số của bạn tại firebase.google.com/pricing trước khi quyết định.
  • Benchmark cold start là từ nội bộ Supabase. Các con số 42ms trung bình, 86ms P95, và 460ms P99 đến từ benchmark nội bộ năm 2025 của Supabase (Tài liệu tham khảo 13). Google không công bố con số cold start chính thức cho Cloud Functions gen2. Kích thước function, runtime, và region đều ảnh hưởng đến các con số này.
  • Latency Firestore của Firebase không thể xác minh. Google không công bố con số SLA latency cho Firestore. Chúng tôi không suy đoán các giá trị ms cụ thể.
  • Không có affiliate links. Supabase chưa có chương trình affiliate công khai tính đến 2026-05-16 (form đối tác tại supabase.com/partners tồn tại nhưng không công bố tỷ lệ hoa hồng). Firebase thuộc sở hữu của Google và không có payout affiliate. Bài viết này không có động cơ tài chính với bất kỳ bên nào.

Tham khảo

  1. Supabase pricing
  2. Firebase pricing
  3. Supabase GitHub (Apache 2.0)
  4. Supabase releases
  5. Supabase vs Firebase — official comparison
  6. Supabase Realtime docs
  7. Supabase Auth docs
  8. Supabase Edge Functions docs
  9. Supavisor — 1M connection benchmark
  10. pgvector vs Pinecone benchmark
  11. Firebase RTDB sharding limits
  12. Firebase Auth pricing detail
  13. Supabase Edge Functions — persistent storage and 97% faster cold starts