# Hướng dẫn migrate từ Firebase sang Supabase
Mở đầu: Vì sao nên cân nhắc thay đổi?
Firebase đã là một lựa chọn phổ biến trong nhiều năm qua nhờ khả năng "serverless" và tốc độ phát triển nhanh. Tuy nhiên, khi dự án lớn dần, nhiều nhà phát triển bắt đầu gặp phải những hạn chế như chi phí tăng cao khi lưu lượng tăng, phụ thuộc quá nhiều vào Google, hoặc khó tùy biến hạ tầng. Supabase ra đời như một giải pháp mã nguồn mở, cung cấp cơ sở dữ liệu PostgreSQL đầy đủ, API tự động, và khả năng mở rộng tốt hơn. Việc migrate không chỉ giúp giảm chi phí mà còn mang lại quyền kiểm soát toàn bộ dữ liệu và hệ thống.
Các bước chuẩn bị trước khi migrate
1. Đánh giá hiện trạng Firebase
Trước khi bắt đầu, cần liệt kê toàn bộ các dịch vụ Firebase đang sử dụng: Authentication, Firestore, Realtime Database, Storage, Cloud Functions, Hosting, Cloud Messaging... Việc này giúp xác định khối lượng công việc cần làm và lên kế hoạch thay thế tương ứng trên Supabase.2. Thiết lập môi trường Supabase
Đăng ký tài khoản Supabase, tạo một project mới. Supabase cung cấp database PostgreSQL, Row Level Security (RLS), API tự động từ schema, Authentication tích hợp, Storage cho file, và Edge Functions tương tự Cloud Functions. Nên bật billing để có thể scale nếu cần, nhưng vẫn có thể chạy miễn phí ở giai đoạn đầu.3. Export dữ liệu từ Firebase
Với Firestore, có thể export dữ liệu bằng cách tải về từ console hoặc dùng Firebase Admin SDK. Realtime Database cũng có công cụ export JSON. Authentication có thể export user (không bao gồm mật khẩu) để mapping sau này. Storage cần download toàn bộ file qua SDK hoặc gsutil.Migrate chi tiết từng dịch vụ
Authentication
Supabase có hệ thống auth tương tự Firebase, hỗ trác Google, Apple, email/password, phone, OAuth... Việc mapping user cần chú ý: email và metadata có thể giữ nguyên, nhưng mật khẩu không export được, nên người dùng phải reset. Trong code, thay vimport firebase/auth bằng supabase/auth, và cập nhật các hàm sign-in, sign-out, reset.Database (Firestore/Realtime Database → PostgreSQL)
Đây là phần phức tạp nhất. Firestore dùng NoSQL document, trong khi Supabase dùng relational PostgreSQL. Cần thiết kế lại schema: chuyển collection thành table, document thành row, và các field lồng nhau thành column hoặc JSONB. Ví dụ, một collection "posts" có field "author" và "tags" có thể mapping thành table posts với column author_id (foreign key) và column tags (JSONB hoặc array).Storage
Supabase Storage tổ chức dữ liệu theo bucket và role, tương tự Firebase Storage. Upload và download file qua Supabase client, và cấu hình ACL qua policies (RLS cho storage). Chú ý: đường dẫn và permission có thể khác, cần cập nhật lại trong code.Cloud Functions/Edge Functions
Cloud Functions Firebase viết bằng Node.js, trigger theo event. Supabase Edge Functions cũng dùng JavaScript/TypeScript, nhưng có thể trigger bằng HTTP hoặc cron. Nếu có Functions phức tạp, cần rewrite lại, có thể giữ nguyên logic nhưng thay đổi cách trigger và deploy.Hosting và các dịch vụ khác
Firebase Hosting có thể thay thế bằng Netlify, Vercel, hoặc chính Supabase Edge Functions. Cloud Messaging có thể chuyển sang sử dụng Supabase Realtime hoặc dịch vụ bên thứ ba như Firebase Cloud Messaging vẫn được, nhưng cần cân nhắc việc phụ thuộc.Các lưu ý quan trọng khi migrate
1. RLS (Row Level Security)
Supabase dùng RLS để bảo mật dữ liệu. Cần viết policy cho từng table, quy định ai được đọc/sửa/xóa dữ liệu nào. Ví dụ, policy "users" chỉ cho phép user tự đọc/sửa row của mình.2. Kiểm thử kỹ lưỡng
Migrate database schema và dữ liệu xong, cần test toàn bộ tính năng: đăng nhập, CRUD, upload file, realtime update (nếu có), API calls... Dùng môi trường staging trước khi chuyển production.3. Cập nhật SDK và URL
Thay vì import firebase, import @supabase/supabase-js và khởi tạo với URL project và anon key. Mọi API call đều qua client.supabase, không phải firebase.app.4. Dự phòng và rollback
Trước khi tắt Firebase, giữ dữ liệu backup và có kế hoạch rollback nếu có sự cố. Có thể chạy cả hai hệ thống song song một thời gian ngắn để đảm bảo ổn định.Kết luận: Liệu có đáng để migrate?
Việc chuyển từ Firebase sang Supabase không phải là việc làm trong một ngày, đặc biệt nếu dự án đã lớn và phức tạp. Tuy nhiên, lợi ích mang lại là đáng kể: tiết kiệm chi phí, tự do tùy biến, kiểm soát dữ liệu, và khả năng mở rộng tốt hơn. Nếu bạn đang tìm kiếm một giải pháp open-source, full-stack, và dễ scale, Supabase là một lựa chọn đáng cân nhắc. Hãy lên kế hoạch kỹ lưỡng, test kỹ, và migrate một cách tự tin.
Quảng cáo
300x250 In-Content Advertisement