Google Cloud Firestore
📚 Giới Thiệu
Google Cloud Firestore là một cơ sở dữ liệu tài liệu NoSQL linh hoạt, có thể mở rộng quy mô, được xây dựng để phát triển trên thiết bị di động, web và máy chủ. Nó được thiết kế để dễ dàng lưu trữ và đồng bộ hóa dữ liệu ứng dụng ở quy mô toàn cầu. Nó là một phần của nền tảng Firebase và cũng có sẵn dưới dạng một sản phẩm Google Cloud độc lập.
🌟 Key Features
- Flexible Data Model: Lưu trữ dữ liệu trong các tài liệu, được sắp xếp thành các bộ sưu tập. Tài liệu hỗ trợ các kiểu dữ liệu phức tạp như đối tượng lồng nhau và mảng.
- Expressive Queries: Cho phép các truy vấn phức tạp để truy xuất các tài liệu riêng lẻ hoặc tất cả các tài liệu trong một bộ sưu tập phù hợp với các tham số truy vấn.
- Real-time Updates: Sử dụng đồng bộ hóa dữ liệu để cập nhật dữ liệu trên mọi máy khách được kết nối. Cung cấp hỗ trợ ngoại tuyến cho thiết bị di động và web.
- Serverless Development: Hoàn toàn không có máy chủ, không cần lo lắng về việc cung cấp cơ sở hạ tầng hoặc mở rộng quy mô.
- Strong Consistency: Cung cấp các đảm bảo nhất quán mạnh mẽ. Tất cả các truy vấn đều đọc phiên bản mới nhất của dữ liệu.
- Multi-Region Replication: Cung cấp sao chép dữ liệu đa khu vực tự động, đảm bảo độ tin cậy toàn cầu.
✅ Ưu Điểm
- Dễ dàng cho các nhà phát triển: SDK trực quan và mô hình dữ liệu giúp các nhà phát triển dễ dàng bắt đầu.
- Lý tưởng cho các ứng dụng thời gian thực: Hỗ trợ tích hợp cho các bản cập nhật thời gian thực giúp đơn giản hóa việc xây dựng các ứng dụng cộng tác.
- Hỗ trợ ngoại tuyến: Tự động bật chế độ ngoại tuyến cho các ứng dụng di động và web.
- Khả năng mở rộng quy mô tự động: Tự động xử lý việc mở rộng quy mô mà không cần sự can thiệp của nhà phát triển.
❌ Nhược Điểm
- Chi phí: Mô hình định giá dựa trên việc sử dụng (đọc, ghi, xóa) có thể trở nên tốn kém đối với các ứng dụng có nhiều hoạt động.
- Giới hạn truy vấn: Một số truy vấn phức tạp (ví dụ: tổng hợp) không được hỗ trợ nguyên bản và yêu cầu sử dụng các dịch vụ bổ sung như Cloud Functions.
- Không dành cho dữ liệu quan hệ: Không phù hợp cho dữ liệu có cấu trúc cao, được kết nối với nhau, nơi các phép nối là cần thiết.
- Tốc độ ghi: Có giới hạn về tốc độ bạn có thể ghi vào một tài liệu riêng lẻ.