รู้จักกับ Realtime database
สามารถดู video ของหัวข้อนี้ก่อนได้ ดู video
Step ต่อไป
เราจะ 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
}