Skip to main content

รู้จักกับ Realtime database

e-commerce-cart-realtime-datbase สามารถดู video ของหัวข้อนี้ก่อนได้ ดู video

Step ต่อไป

intro-01

เราจะ move กลับมาที่ Database กัน โดยใน Session นี้เราจะมาทำการเชื่อมตะกร้าสินค้ากัน โดยเราจะใช้ Product หนึ่งของ Firebase เข้ามาช่วยเป็น Database สำหรับการเก็บ JSON เอาไว้ชื่อ "Firebase Realtime database"

Realtime database คืออะไร

document ต้นฉบับ: https://firebase.google.com/docs/database

Firebase Realtime Database (จากนี้จะขอเรียก Realtime Database) คือ cloud database ที่ทำการเก็บ JSON และสามารถ sync แบบ realtime ได้ ในทุกๆการต่อกับ client

  • มี Firebase sdk ที่ support การเก็บข้อมูลเป็น JSON และ การทำ realtime
  • ใช้งานทีละหลาย database ได้ใน Project เดียวกัน (แตกต่างกับ Firestore ที่จะมีได้แค่ Database เดียว)
  • support การใช้งาน offline ได้

Realtime database นั้น ก็นิยามตัวเองเป็น NoSQL เช่นเดียวกัน แต่จะมีจุดที่แตกต่างกับ Firestore 1 อย่างคือ

  • Firestore จะดึงข้อมูลตาม collection (แต่จะไม่เอา subcollection มาด้วย)
  • แต่ถ้าเป็น Realtime database = จะดึง JSON ของทั้ง key นั้นออกมา

** หาก JSON ซ้อนกันหลายชั้น = จะดึงข้อมูลปริมาณเยอะมากและกินเวลามากเช่นเดียวกัน

  • ควรจะ design ให้เก็บข้อมูลไม่มาก
  • เหมาะสำหรับเคสที่เป็น Realtime

ลง config Realtime database ลงใน Vue

ซึ่งเหมือนกันกับ Firestore ไม่จำเป็นต้องลง library อะไรเพิ่มเนื่องจาก library หลักของ firebase ได้ลงไว้ให้เรียบร้อย สามารถ import realtime database เข้าโดยตรงได้เลย

import { initializeApp } from 'firebase/app'

// ทำการ import realtime database มา
import { getDatabase, connectDatabaseEmulator } from 'firebase/database'

// ทำการ init realtime database
const realtimeDB = getDatabase()
connectDatabaseEmulator(realtimeDB, '127.0.0.1', 9000)

export {
realtimeDB
}