Buổi 05 — Lý thuyết: Firebase, bình luận và tệp đính kèm

Mục tiêu buổi học

  • Phân biệt dữ liệu cục bộ và dữ liệu trên mây
  • Hiểu Firestore lưu công việc, bình luận và lịch sử
  • Hiểu Storage lưu nội dung tệp
  • Xử lý các trạng thái loading, error và empty

1. Vì sao cần dữ liệu trên mây?

Dữ liệu gắn trong code chỉ tồn tại trên một máy. Một app cộng tác cần mọi thành viên thấy thay đổi mới nhất mà không phải cài lại app.

2. Firestore và Storage

Metadata tệp gồm tên, loại, kích thước, URL, người tải lên và thời gian. Không lưu toàn bộ file vào Firestore.

3. Mô hình dữ liệu tối thiểu

4. Luồng upload an toàn

  1. Người dùng chọn tệp.
  2. App kiểm tra loại và dung lượng.
  3. App tải nội dung lên Storage.
  4. App lưu metadata vào công việc.
  5. App hiển thị tiến độ hoặc lỗi để thử lại.
Không dùng tên tệp do người dùng nhập làm đường dẫn duy nhất. Hãy tạo ID riêng và cấu hình Security Rules trước khi dùng dữ liệu thật.

5. Bình luận là dữ liệu cộng tác

Mỗi bình luận cần nội dung, tác giả, thời gian và taskId. Nếu hỗ trợ @mention, app cần lưu người được nhắc để tạo thông báo ở buổi 07.

6. Trạng thái mạng bắt buộc

Mọi màn hình đọc hoặc ghi dữ liệu cần phản hồi cho người dùng khi đang tải, thành công, lỗi và không có dữ liệu.

Tóm tắt buổi học

  • Firestore lưu dữ liệu có cấu trúc; Storage lưu tệp.
  • Bình luận, tệp và hoạt động đều gắn với một công việc.
  • Upload cần validation, tiến độ và khả năng thử lại.