Firebase Realtime Database

Firebase

I. Tổng quan

Firebase Realtime Database đóng vai trò quan trọng trong việc cung cấp một giải pháp linh hoạt và mạnh mẽ cho việc lưu trữ và đồng bộ dữ liệu theo thời gian thực. Firebase Realtime Database sử dụng mô hình thời gian thực, cho phép dữ liệu được đồng bộ ngay lập tức khi có thay đổi. 

Dữ liệu trong Firebase Realtime Database được lưu trữ dưới dạng JSON, tạo ra một cấu trúc linh hoạt và dễ đọc.

II. So sánh với với Firebase Firestore

Firebase cung cấp hai cơ sở dữ liệu tài liệu dựa trên đám mây mà khách hàng có thể truy cập. Firebase khuyên khách hàng mới nên bắt đầu với Cloud Firestore:

Mô hình dữ liệu

Cả Cơ sở dữ liệu thời gian thực và Cloud Firestore đều là Cơ sở dữ liệu NoSQL.

Cloud Firestore Realtime DB
Lưu trữ dữ liệu dưới dạng bộ sưu tập tài liệu.Dữ liệu đơn giản dễ dàng lưu trữ trong các tài liệu, rất giống với JSON.Dữ liệu phức tạp, có thứ bậc dễ dàng tổ chức hơn trên quy mô lớn bằng cách sử dụng các bộ sưu tập con trong tài liệu.Yêu cầu ít chuẩn hóa và làm phẳng dữ liệu hơn. Lưu trữ dữ liệu dưới dạng một cây JSON lớn.Dữ liệu đơn giản rất dễ dàng để lưu trữ.Dữ liệu phức tạp, có thứ bậc khó tổ chức hơn trên quy mô lớn.

Ngoài ra còn nhiều yếu tố so sánh mà trang chủ Firebase cung cấp và khuyến nghị sử dụng Firestore, các bạn có thể xem thêm tại: https://firebase.google.com/docs/database/rtdb-vs-firestore 

III. Chi phí

Chi phí cho việc sử dụng Firebase Realtime Database được tính dựa trên một số yếu tố chính. Dưới đây là một số điểm quan trọng mà bạn cần biết:

Dung Lượng Dữ Liệu (Storage):

Thao Tác Đọc và Ghi (Read and Write Operations):

Thời Gian Thực (Realtime):

Vùng Địa Lý (Geo-location):

Loại Dịch Vụ Mạng (Network Service Tiers):

Giảm Giá theo Quy Mô (Volume Discounts):

IV. Triển khai với Flutter

Create database

Tạm thời để allow read, write là true để cho phép đọc và ghi. Ở bài Securities Rule mình sẽ nói chi tiết hơn

Vào Project Settings download lại file google-service.json, GoogleService-Info.plist copy lại vào project

Thêm lib:

Ghi dữ liệu vào db:

Kết quả trên console:

Lấy dữ liệu