เลือกฐานข้อมูล: Cloud Firestore หรือ Realtime Database

Firebase มีฐานข้อมูลเอกสารแบบคลาวด์ที่ไคลเอ็นต์เข้าถึงได้ 2 ประเภท เราขอแนะนำให้ลูกค้าใหม่เริ่มต้นด้วย Cloud Firestore

  • Cloud Firestore เป็นฐานข้อมูลเอกสารที่ใช้งานร่วมกับ JSON ได้ในระดับองค์กรที่แนะนำ ซึ่งได้รับความไว้วางใจจากนักพัฒนาซอฟต์แวร์กว่า 250,000 คน ซึ่งเหมาะสำหรับแอปพลิเคชันที่มีโมเดลข้อมูลแบบ Rich Data ที่ต้องสามารถค้นหา ปรับขนาด และพร้อมใช้งานสูง รวมถึงการซิงค์ไคลเอ็นต์ที่มีเวลาในการตอบสนองต่ำและการเข้าถึงข้อมูลแบบออฟไลน์

  • Realtime Database คือฐานข้อมูล JSON ของ Firebase แบบคลาสสิก รูปแบบข้อมูลนี้เหมาะสำหรับแอปพลิเคชันที่มีรูปแบบข้อมูลที่เรียบง่ายซึ่งต้องมีการค้นหาที่ง่ายดายและการซิงค์ที่มีเวลาในการตอบสนองต่ำและความสามารถในการปรับขนาดได้จำกัด

สิ่งสำคัญอื่นๆ ที่ควรพิจารณามีอะไรบ้าง

หลังจากพิจารณาถึงสิ่งสำคัญที่ควรพิจารณาก่อนหน้านี้แล้ว คุณอาจพร้อมที่จะเลือกฐานข้อมูลแล้ว หากคุณยังพิจารณาข้อดีและข้อเสียอยู่ ส่วนนี้จะกล่าวถึงความแตกต่างอื่นๆ ระหว่าง Cloud Firestore กับ Realtime Database

โมเดลข้อมูล

ทั้ง Realtime Database และ Cloud Firestore เป็นฐานข้อมูล NoSQL

Cloud Firestore [ แนะนำ ] Realtime Database
จัดเก็บข้อมูลเป็นคอลเล็กชันเอกสาร
  • ข้อมูลแบบง่ายจัดเก็บไว้ในเอกสารได้ง่ายๆ ซึ่งคล้ายกับ JSON มาก
  • ข้อมูลเชิงลําดับชั้นที่ซับซ้อนจะจัดระเบียบได้ง่ายขึ้นเมื่อใช้คอลเล็กชันย่อยในเอกสาร
  • ต้องใช้การแปลงรูปแบบข้อมูลให้เป็นรูปแบบปกติและการแปลงข้อมูลเป็นรูปแบบแบนน้อยลง

ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบข้อมูล Cloud Firestore

จัดเก็บข้อมูลเป็นแผนผัง JSON ขนาดใหญ่ 1 ต้น
  • ข้อมูลแบบง่ายจัดเก็บได้ง่ายมาก
  • ข้อมูลแบบลําดับชั้นที่ซับซ้อนจะจัดระเบียบในระดับที่ใหญ่ขึ้นได้ยาก

ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลข้อมูล Realtime Database

การสนับสนุนแบบเรียลไทม์และออฟไลน์

ทั้ง 2 รายการมี SDK แบบเรียลไทม์ที่เน้นอุปกรณ์เคลื่อนที่ และทั้ง 2 รายการรองรับพื้นที่เก็บข้อมูลในเครื่องสําหรับแอปที่พร้อมใช้งานแบบออฟไลน์

Cloud Firestore [ แนะนำ ] Realtime Database
การรองรับแบบออฟไลน์สำหรับไคลเอ็นต์ Apple, Android และเว็บ การสนับสนุนแบบออฟไลน์สำหรับไคลเอ็นต์ Apple และ Android

การตรวจหาบุคคลในบ้าน

การทราบว่าลูกค้าออนไลน์หรือออฟไลน์อยู่อาจมีประโยชน์ Firebase Realtime Database สามารถบันทึกสถานะการเชื่อมต่อของลูกค้าและแสดงข้อมูลอัปเดตทุกครั้งที่สถานะการเชื่อมต่อของลูกค้ามีการเปลี่ยนแปลง

Cloud Firestore [ แนะนำ ] Realtime Database
ไม่รองรับโดยค่าเริ่มต้น คุณสามารถใช้การรองรับการแสดงข้อมูลในสถานะของ Realtime Database โดยการซิงค์ Cloud Firestore กับ Realtime Database โดยใช้ Cloud Functions ดูการสร้างการแสดงข้อมูลในสถานะของ Cloud Firestore รองรับการตรวจหาบุคคลในบ้าน

การค้นหา

ดึงข้อมูล จัดเรียง และกรองข้อมูลจากฐานข้อมูลผ่านคําค้นหา

Cloud Firestore [ แนะนำ ] Realtime Database
คำค้นหาที่จัดทําดัชนีซึ่งมีการจัดเรียงและกรองแบบผสม
  • คุณสามารถต่อตัวกรอง และรวมการกรองและการจัดเรียงในพร็อพเพอร์ตี้ไว้ในคำค้นหาเดียวได้
  • การค้นหาเป็นแบบตื้น: แสดงเฉพาะเอกสารในคอลเล็กชันหรือกลุ่มคอลเล็กชันหนึ่งๆ เท่านั้น และไม่แสดงข้อมูลคอลเล็กชันย่อย
  • ข้อความค้นหาต้องแสดงเอกสารทั้งฉบับเสมอ
  • ระบบจะจัดทำดัชนีคำค้นหาโดยค่าเริ่มต้น: ประสิทธิภาพการค้นหาจะสัมพันธ์กับขนาดของชุดผลลัพธ์ ไม่ใช่ชุดข้อมูล
การค้นหาแบบเจาะลึกที่มีฟีเจอร์การจัดเรียงและกรองแบบจํากัด
  • การค้นหาจะจัดเรียงหรือกรองพร็อพเพอร์ตี้ได้ แต่ต้องเลือกอย่างใดอย่างหนึ่ง
  • การค้นหาเป็นแบบเจาะลึกโดยค่าเริ่มต้น ซึ่งจะแสดงผลทั้งซับต้นไม้เสมอ
  • การค้นหาสามารถเข้าถึงข้อมูลในระดับรายละเอียดที่ต้องการได้ ไปจนถึงค่าของโหนดใบแต่ละโหนดในต้นไม้ JSON
  • การค้นหาไม่จำเป็นต้องใช้ดัชนี แต่ประสิทธิภาพของการค้นหาบางอย่างจะลดลงเมื่อชุดข้อมูลมีขนาดใหญ่ขึ้น

การเขียนและธุรกรรม

Cloud Firestore [ แนะนำ ] Realtime Database
การดำเนินการเขียนและธุรกรรมขั้นสูง
  • เขียนการดำเนินการกับข้อมูลผ่านการดำเนินการตั้งค่าและการอัปเดต รวมถึงการเปลี่ยนรูปแบบขั้นสูง เช่น อาร์เรย์และโอเปอเรเตอร์ตัวเลข
  • ธุรกรรม สามารถอ่านและเขียนข้อมูลจากส่วนใดก็ได้ในฐานข้อมูล
การดำเนินการเขียนและธุรกรรมพื้นฐาน
  • เขียนข้อมูลผ่านการดำเนินการตั้งค่าและการอัปเดต
  • ธุรกรรมเป็นข้อมูลย่อยในซับต้นไม้ข้อมูลหนึ่งๆ

ความน่าเชื่อถือและประสิทธิภาพ

Cloud Firestore [ แนะนำ ] Realtime Database
Cloud Firestore เป็นโซลูชันระดับภูมิภาคและหลายภูมิภาคที่ปรับขนาดโดยอัตโนมัติ
  • โซลูชันที่มีเวลาในการตอบสนองต่ำที่เวลาตอบสนองโดยทั่วไปจะไม่เกิน 30 มิลลิวินาที
  • จัดเก็บข้อมูลของคุณในศูนย์ข้อมูลหลายแห่งในภูมิภาคต่างๆ เพื่อให้มั่นใจว่าสามารถปรับขนาดได้ทั่วโลกและมีความน่าเชื่อถือสูง
  • พร้อมให้บริการในการกำหนดค่าระดับภูมิภาคหรือหลายภูมิภาคทั่วโลก
อ่านเพิ่มเติมเกี่ยวกับCloud Firestoreลักษณะประสิทธิภาพและความน่าเชื่อถือในข้อตกลงระดับการให้บริการ
Realtime Database เป็นโซลูชันระดับภูมิภาค
  • พร้อมใช้งานในการกำหนดค่าระดับภูมิภาค ฐานข้อมูลจะจํากัดอยู่ที่ความพร้อมให้บริการระดับโซนภายในภูมิภาค
  • เวลาในการตอบสนองต่ำมาก โดยมีเวลาตอบสนองโดยทั่วไปไม่เกิน 10 มิลลิวินาที เป็นตัวเลือกที่เหมาะสำหรับการซิงค์สถานะบ่อยๆ
อ่านเพิ่มเติมเกี่ยวกับRealtime Databaseลักษณะประสิทธิภาพและความน่าเชื่อถือในข้อตกลงระดับการให้บริการ

ระยะเวลาทำงาน

Cloud Firestore [ แนะนำ ] Realtime Database
ประสิทธิภาพการทํางานที่มีเวลาทํางานสูงมาก
  • ประสิทธิภาพเวลาทํางานโดยทั่วไป 99.999%
  • หากความพร้อมให้บริการมีความสำคัญสูงสุด เช่น ในแอปอีคอมเมิร์ซ ให้ใช้ Cloud Firestore
ประสิทธิภาพระยะเวลาทำงานสูง
  • ประสิทธิภาพเวลาทํางานโดยทั่วไป 99.95%

ความสามารถในการปรับขนาด

Cloud Firestore [ แนะนำ ] Realtime Database
การปรับขนาดเป็นแบบอัตโนมัติ
  • ปรับขนาดโดยอัตโนมัติทั้งหมด ขีดจํากัดการปรับขนาดอยู่ที่ประมาณ 1 ล้านการเชื่อมต่อพร้อมกันและการเขียน 10,000 ครั้งต่อวินาที เราวางแผนที่จะเพิ่มขีดจำกัดเหล่านี้ในอนาคต
  • มีขีดจํากัดอัตราการเขียนไปยังเอกสารหรือดัชนีแต่ละรายการ
การปรับขนาดต้องมีชาร์ดดิ้ง
  • ปรับขนาดเป็นการเชื่อมต่อพร้อมกันประมาณ 200,000 ครั้งและการเขียน 1,000 ครั้งต่อวินาทีในฐานข้อมูลเดียว หากต้องการปรับขนาดมากกว่านั้น คุณจะต้องแยกข้อมูลในฐานข้อมูลหลายแห่ง
  • ไม่มีขีดจำกัดในท้องถิ่นสำหรับอัตราการเขียนข้อมูลแต่ละชิ้น

ความปลอดภัย

Cloud Firestore [ แนะนำ ] Realtime Database
กฎแบบไม่ทํางานแบบตามลําดับชั้นซึ่งรวมการให้สิทธิ์เข้ากับการตรวจสอบ
  • อ่านและเขียนจาก SDK บนอุปกรณ์เคลื่อนที่ที่ปลอดภัยโดย Cloud Firestore Security Rules
  • อ่านและเขียนจาก SDK ของเซิร์ฟเวอร์ที่ปลอดภัยโดย Identity and Access Management (IAM)
  • กฎจะไม่ทํางานตามลําดับ เว้นแต่คุณจะใช้ไวลด์การ์ด
  • กฎสามารถจํากัดการค้นหาได้: หากผลการค้นหาอาจมีข้อมูลที่ผู้ใช้ไม่มีสิทธิ์เข้าถึง การค้นหาทั้งหมดจะดำเนินการไม่สำเร็จ
ภาษากฎแบบแคสคาดี้งที่แยกการให้สิทธิ์และการตรวจสอบ
  • อ่านและเขียนจาก SDK บนอุปกรณ์เคลื่อนที่ที่ปลอดภัยโดย Realtime Database Security Rules
  • อ่านและเขียนกฎตามลําดับชั้น
  • ซึ่งคุณจะตรวจสอบข้อมูลแยกต่างหากได้โดยใช้กฎ validate

ราคา

โซลูชันทั้ง 2 รายการมีให้บริการในแพ็กเกจราคา Spark และ Blaze

Cloud Firestore [ แนะนำ ] Realtime Database
ระบบจะเรียกเก็บเงินตามการดำเนินการในฐานข้อมูล (อ่าน เขียน ลบ) เป็นหลัก และตามอัตราที่ต่ำลงสำหรับแบนด์วิดท์และพื้นที่เก็บข้อมูล

Cloud Firestore รองรับวงเงินใช้จ่ายรายวันสำหรับโปรเจ็กต์ App Engine เพื่อให้แน่ใจว่าค่าใช้จ่ายจะไม่สูงกว่าที่คุณรับได้

อ่านเพิ่มเติมเกี่ยวกับแพ็กเกจราคา Cloud Firestore

เรียกเก็บเฉพาะค่าแบนด์วิดท์และพื้นที่เก็บข้อมูล แต่จะมีอัตราที่สูงกว่า

อ่านเพิ่มเติมเกี่ยวกับแพ็กเกจราคา Realtime Database

การใช้ Cloud Firestore และ Realtime Database

คุณใช้ทั้ง 2 ฐานข้อมูลภายในแอปหรือโปรเจ็กต์ Firebase เดียวกันได้ ฐานข้อมูล NoSQL ทั้ง 2 ประเภทสามารถจัดเก็บข้อมูลประเภทเดียวกันและคลังไคลเอ็นต์ทํางานในลักษณะที่คล้ายกัน โปรดคำนึงถึงความแตกต่างที่ระบุไว้ก่อนหน้านี้หากคุณตัดสินใจใช้ทั้ง 2 ฐานข้อมูลในแอป

ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์ที่มีให้ใช้งานทั้งใน Realtime Database และ Cloud Firestore

พร้อมเลือกฐานข้อมูลแล้วหรือยัง

เราหวังว่าการเปรียบเทียบนี้จะช่วยให้คุณตัดสินใจเลือกโซลูชันฐานข้อมูล Firebase ได้ ตอนนี้คุณสามารถดูวิธีเพิ่มฐานข้อมูลลงในโปรเจ็กต์ Firebase ได้แล้ว