Bài viết trước giải thích cách tổ chức Frontend (Next.js) theo 3 nhóm: Pages, Components, Services. Bài này đi sâu vào tầng Backend — giải thích cách Firebase được tổ chức và vận hành phía sau ứng dụng, gồm 5 thành phần chính.
Dành cho ai? Bạn không cần biết code hay quản trị server. Bài viết giải thích bằng ngôn ngữ đời thường, dùng ví dụ thực tế từ ứng dụng quản lý công việc (task management). Mục tiêu: giúp bạn hiểu Firebase hoạt động thế nào để mô tả yêu cầu cho Claude Code chính xác hơn.

Tổng quan: 5 thành phần trong hệ sinh thái Firebase

Firebase không phải một công cụ duy nhất — nó là bộ công cụ gồm nhiều dịch vụ, mỗi dịch vụ giải quyết một bài toán backend cụ thể.

Firestore

Cơ sở dữ liệuLưu trữ toàn bộ dữ liệu ứng dụng. Cập nhật realtime.

Authentication

Xác thực người dùngĐăng nhập, đăng ký, quản lý phiên. Google, Email, Phone.

Cloud Storage

Lưu trữ fileẢnh, video, PDF. Kiểm soát quyền truy cập.

Cloud Functions

Logic phía serverCode chạy tự động khi có sự kiện hoặc theo lịch.

Security Rules

Bảo mật dữ liệuQuy tắc ai được đọc/ghi dữ liệu nào.
Phép so sánh — Tòa nhà văn phòng:
  • Firestore = Tủ hồ sơ (lưu trữ tất cả tài liệu, hợp đồng, danh sách)
  • Authentication = Bảo vệ sảnh (kiểm tra thẻ nhân viên, cho phép vào tòa nhà)
  • Cloud Storage = Kho lưu trữ (lưu thùng hồ sơ lớn, bản vẽ, video)
  • Cloud Functions = Nhân viên tự động (khi có hồ sơ mới → tự gửi email thông báo)
  • Security Rules = Nội quy tòa nhà (phòng nào ai được vào, tài liệu nào ai được xem)

Bố cục backend trong dự án

Phần backend Firebase được tổ chức trong dự án Next.js qua 2 nơi:
Thư mục services/ nằm trong dự án Next.js (frontend gọi Firebase). Thư mục functions/dự án riêng chạy trên server Google — có package.json và dependencies riêng.

1. Firestore — Cơ sở dữ liệu

Firestore là gì?

Firestore là nơi lưu toàn bộ dữ liệu của ứng dụng. Không giống database truyền thống (bảng với hàng và cột), Firestore tổ chức dữ liệu theo Collections (bộ sưu tập) chứa Documents (tài liệu).
Phép so sánh: Firestore giống tủ hồ sơ trong văn phòng:
  • Collection = Ngăn kéo (ngăn “Nhân viên”, ngăn “Công việc”, ngăn “Dự án”)
  • Document = Tờ hồ sơ trong ngăn kéo (hồ sơ của Nguyễn Văn A)
  • Fields = Các mục trong hồ sơ (tên, email, role, ngày bắt đầu)

Thiết kế cấu trúc dữ liệu

Trước khi viết code, bạn cần thiết kế cấu trúc dữ liệu — quyết định lưu gì, ở đâu, liên kết thế nào. Ví dụ — Ứng dụng quản lý công việc:

Các loại dữ liệu Firestore hỗ trợ

Subcollections — Dữ liệu lồng nhau

Firestore hỗ trợ subcollection — collection nằm bên trong document. Dùng khi dữ liệu thuộc về một document cụ thể.
Khi nào dùng subcollection vs collection riêng?

Realtime — Cập nhật tức thì

Firestore cập nhật dữ liệu theo thời gian thực. Khi một người thay đổi dữ liệu, tất cả người dùng khác đang mở ứng dụng sẽ thấy thay đổi ngay lập tức — không cần reload.

2. Authentication — Xác thực người dùng

Authentication đảm nhận những gì?

Authentication quản lý toàn bộ vòng đời người dùng: từ đăng ký, đăng nhập, quên mật khẩu, đến đăng xuất. Mọi thứ phức tạp phía sau (mã hóa mật khẩu, quản lý session, chống tấn công) đều do Firebase xử lý.

Luồng xác thực trong ứng dụng

Các phương thức đăng nhập

Phương thức truyền thống — người dùng đăng ký bằng email và mật khẩu.Firebase tự động xử lý:
  • Mã hóa mật khẩu (không lưu plain text)
  • Gửi email xác minh tài khoản
  • Link “Quên mật khẩu” → gửi email reset
  • Chống brute-force (khóa sau nhiều lần nhập sai)
Khi mô tả cho Claude Code:
Người dùng bấm “Đăng nhập với Google” → chọn tài khoản → xong. Không cần nhớ mật khẩu thêm.Firebase tự động xử lý:
  • Mở popup chọn tài khoản Google
  • Xác minh token từ Google
  • Tạo hoặc cập nhật user trong Firebase Auth
  • Trả về thông tin: tên, email, ảnh đại diện
Khi mô tả cho Claude Code:
Gửi mã OTP qua SMS → người dùng nhập mã → đăng nhập. Phù hợp khi cần xác minh danh tính thực.Firebase tự động xử lý:
  • Gửi SMS với mã 6 số
  • Xác minh mã OTP
  • Chống spam (reCAPTCHA)
Lưu ý: Có phí gửi SMS sau 10 SMS miễn phí/ngày (gói Spark).

UID — Chìa khóa liên kết dữ liệu

Sau khi đăng nhập, Firebase cấp cho mỗi người dùng một UID (User ID) duy nhất, ví dụ: xK9mNp2QrLo5vWcT8uEd. UID là chìa khóa liên kết giữa Authentication và Firestore:

3. Cloud Storage — Lưu trữ file

Storage đảm nhận những gì?

Cloud Storage lưu trữ file lớn mà Firestore không phù hợp: ảnh, video, PDF, Excel. Tổ chức file theo đường dẫn (path), tương tự thư mục trên máy tính.

Cấu trúc lưu trữ file

Quy trình upload file

Kiểm soát quyền truy cập file


4. Cloud Functions — Logic phía server

Cloud Functions là gì?

Cloud Functions là đoạn code chạy trên server Google, được kích hoạt bởi sự kiện. Bạn không cần thuê server — Google tự động chạy code khi có sự kiện xảy ra, rồi tắt đi khi xong.
Phép so sánh: Cloud Functions giống nhân viên tự động trong công ty. Không cần gọi, không cần theo dõi — khi có hồ sơ mới vào (sự kiện), nhân viên tự động xử lý (gửi thông báo, tính toán, gửi email), xong rồi nghỉ.

Cấu trúc thư mục Cloud Functions

3 loại Cloud Functions

Tự động chạy khi dữ liệu trong Firestore thay đổi. Có 4 loại trigger:Ví dụ — Khi tạo task mới:
Tự động chạy vào thời điểm đặt sẵn, giống cron job. Phù hợp cho báo cáo, nhắc nhở, dọn dẹp dữ liệu.Ví dụ — Nhắc deadline hàng ngày:
Tạo URL mà frontend hoặc dịch vụ bên ngoài có thể gọi. Phù hợp khi cần xử lý logic phức tạp phía server hoặc tích hợp dịch vụ thứ 3.Ví dụ — Tạo báo cáo PDF:

Luồng hoạt động Cloud Functions


5. Security Rules — Bảo mật dữ liệu

Security Rules là gì?

Security Rules là bộ quy tắc xác định ai được đọc/ghi dữ liệu nào. Chúng chạy trên server Firebase — không thể bị bypass từ phía client.
Phép so sánh: Security Rules giống nội quy tòa nhà:
  • Nhân viên chỉ vào được phòng của mình (user đọc data của mình)
  • Trưởng phòng vào được phòng của team (admin đọc data cả team)
  • Giám đốc vào được mọi phòng (super admin đọc tất cả)
  • Khách chỉ vào được sảnh (public data)

Các mức bảo mật

Các cấp độ bảo mật phổ biến

Mô tả Security Rules cho Claude Code


Cách 5 thành phần phối hợp

Tất cả 5 thành phần Firebase hoạt động phối hợp nhịp nhàng. Đây là ví dụ luồng hoàn chỉnh khi tạo task mới:

Firebase Console — Bảng điều khiển

Firebase Console (console.firebase.google.com) là giao diện web cho phép bạn xem và quản lý tất cả dịch vụ Firebase — không cần code.
Khi phát triển, bạn có thể vào Firebase Console để kiểm tra dữ liệu mà Claude Code tạo ra — xem document đúng chưa, field nào bị thiếu, data có hợp lệ không.

Chi phí Firebase

Gói Spark (miễn phí)

Gói Blaze (trả theo dùng)

Chiến lược thực tế: Bắt đầu với gói Spark (miễn phí). Khi cần Cloud Functions hoặc vượt giới hạn, nâng lên Blaze. Đặt budget alert510/thaˊngđểkimsoaˊt.Chiphıˊthcte^ˊchongdngnh/trungthườngdưới5-10/tháng để kiểm soát. Chi phí thực tế cho ứng dụng nhỏ/trung thường **dưới 10/tháng**.

Mô tả backend cho Claude Code

Khi hiểu cấu trúc backend Firebase, việc mô tả yêu cầu cho Claude Code trở nên chính xác hơn: Thiết kế database:
Viết Cloud Functions:
Cấu hình bảo mật:

Câu hỏi thường gặp

Firestore phù hợp khi dữ liệu đơn giản-trung bình và cần realtime. SQL phù hợp khi cần query phức tạp (báo cáo, phân tích nhiều bảng liên kết).
Không. Cloud Functions chạy theo kiểu event-driven — chỉ chạy khi có sự kiện, xong thì tắt. Bạn không trả tiền khi function không chạy.Thời gian chạy tối đa mặc định: 60 giây (có thể tăng lên 540 giây).Nếu function cần chạy liên tục (ví dụ WebSocket server), Cloud Functions không phù hợp — dùng Cloud Run hoặc server truyền thống.
Khi tạo Firestore lần đầu, Firebase cho phép chọn test mode (mở hoàn toàn trong 30 ngày). Đây là đủ cho giai đoạn phát triển.Trước khi deploy cho người dùng thật, bạn bắt buộc phải viết Security Rules. Không có Rules = ai cũng đọc/ghi/xóa được tất cả dữ liệu.Yêu cầu Claude Code viết Rules khi ứng dụng đã có đủ tính năng cơ bản và chuẩn bị deploy.
Firebase Emulator là phiên bản Firebase chạy trên máy tính của bạn — mô phỏng Firestore, Auth, Storage, Functions mà không cần kết nối internet hay ảnh hưởng dữ liệu thật.Dùng khi nào:
  • Phát triển và test trên local
  • Test Cloud Functions trước khi deploy
  • Test Security Rules mà không sợ ảnh hưởng production
Mô tả cho Claude Code:
Firebase có SLA 99.95% uptime — trong một năm, thời gian ngừng hoạt động tối đa khoảng 4 giờ. Dữ liệu được replicate trên nhiều data center của Google.Firestore cũng hỗ trợ backup tự động — bạn có thể cấu hình backup hàng ngày để khôi phục khi cần. Yêu cầu Claude Code cấu hình Export/Import nếu cần.

Tóm tắt

Điểm mấu chốt: Firebase cung cấp toàn bộ backend mà ứng dụng cần — database, authentication, file storage, server logic, và bảo mật — tất cả do Google vận hành. Bạn chỉ cần mô tả cấu trúc dữ liệu, quy tắc bảo mật, và logic tự động cho Claude Code. Không cần thuê server, không cần cài database, không cần lo bảo trì.