Skip to content

Firestore – Database service vô cùng mạnh mẽ với real-time updates

Giới thiệu về Firestore

Là database service được cung cấp bởi google

Với tính năng update real-time hỗ trợ vô cùng mạnh mẽ với frontend

… Tìm hiểu thêm ở một lúc khác nhé. Bây giờ thì cùng tìm hiểu nào


Table of Contents

    Đầu tiên cùng tìm hiểu về kiểu dữ liệu

    Data types

    • Array : ở trên firestore là map biến dạng
    • Boolean
    • Bytes
    • Date & time
    • Float
    • Geo point
    • Integer
    • Map
    • Null
    • Reference : projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]
    • Text : UTF-8
    var docData = {
        stringExample: "Hello world!",
        booleanExample: true,
        numberExample: 3.14159265,
        dateExample: firebase.firestore.Timestamp.fromDate(new Date("December 10, 1815")),
        arrayExample: [5, true, "hello"],
        nullExample: null,
        objectExample: {
            a: 5,
            b: {
                nested: "foo"
            }
        }
    };
    

    Data Model

    Hoàn toàn khác với ~ sql database thì firestore hỗ trợ no-sql

    Với cấu trúc denormalize, nghĩa là không sợ duplicate data. Với no-sql thì việc duplicate code là chuyện được ủng hộ

    • Lợi : Read rất nhanh vì tất cả data cần nằm đúng 1 chỗ => Không cần Join table v.v.
    • Hại : Write kém vì data duplicated nằm ở nhiều nơi khác nhau => Mỗi lần thay đổi 1 data => phải thay đổi toàn bộ ~ duplicated data

    Collection & Documents

    Data model ở firestore là collection & document

    • Collection = table
    • Document = record(row) nhưng chứa object {name: …, v.v.}

    Document nằm trong Collection !!!! Đương nhiên rồi record thì phải nằm trong table

    Và trong document cũng có thể chứa Collection nữa !! (gọi là sub-collection)

    Nhưng không thể chứa document trực tiếp bên trong document

    giới hạn của Doc là 1MB => Với điều kiện này chúng ta cần cân nhắc về cách sắp xếp data cho hợp lý : map hoặc sub-collection hay root-collection

    Lời kết

    Bài này không quá dài nhưng đủ để khởi động chúng ta trước khi tìm hiểu sâu về Firestore.

    Bây giờ ta đã biết có 11 loại data-type trong đó có 3 loại đặc biệt

    – Array, Boolean, Bytes, Float, Integer, Map, Null, Text

    Đặc biệt :

    • Date & time
    • Geo point
    • Reference : projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]
    const { Timestamp, GeoPoint } = firebase.firestore
    export { Timestamp, GeoPoint }

    Collection, Document là gì và nhưng lưu ý của document : chứa sub-collection nhưng không chứa document trực tiếp

    Limit : 1 doc chứa maximun 1MB data

    Tiếp theo ta sẽ tìm hiểu về Indexing – Firestore query, sort như thế nào mà nhanh vậy (need update)

    Published inFirestore

    Be First to Comment

    Leave a Reply

    Your email address will not be published. Required fields are marked *