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

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

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

  • 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
คำค้นหาที่มีการจัดทำดัชนีซึ่งมีคำแบบผสม การจัดเรียงและการกรอง
  • คุณสามารถเชื่อมโยงตัวกรอง และรวมการกรองและการจัดเรียงในพร็อพเพอร์ตี้ได้ใน ข้อความค้นหาเดียว
  • การค้นหามีปริมาณน้อย: ผลการค้นหาจะแสดงเฉพาะเอกสารในคอลเล็กชันที่เฉพาะเจาะจงเท่านั้น หรือกลุ่มคอลเล็กชัน และจะไม่แสดงข้อมูลคอลเล็กชันย่อย
  • ข้อความค้นหาต้องแสดงเอกสารทั้งฉบับเสมอ
  • ระบบจะจัดทําดัชนีคําค้นหาโดยค่าเริ่มต้น: ประสิทธิภาพการค้นหาจะเป็นไปตามสัดส่วนของ ขนาดของชุดผลลัพธ์ ไม่ใช่ชุดข้อมูล
การค้นหาแบบเจาะลึกที่มีฟีเจอร์การจัดเรียงและกรองแบบจํากัด
  • คำค้นหาสามารถจัดเรียงหรือกรองพร็อพเพอร์ตี้ได้ แต่จะทำทั้ง 2 อย่างไม่ได้
  • คำค้นหาจะมีความลึกโดยค่าเริ่มต้น: คำค้นหาจะแสดงแผนผังย่อยทั้งหมดเสมอ
  • การค้นหาเข้าถึงข้อมูลได้ทุกรายละเอียด ไปจนถึงค่าโหนดใบไม้แต่ละค่าในแผนผัง JSON
  • การค้นหาไม่จำเป็นต้องใช้ดัชนี แต่ประสิทธิภาพของการค้นหาบางอย่างจะลดลงเมื่อชุดข้อมูลมีขนาดใหญ่ขึ้น

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

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

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

Cloud Firestore แนะนำ Realtime Database
Cloud Firestore เป็นโซลูชันระดับภูมิภาคและหลายภูมิภาคที่ปรับขนาด โดยอัตโนมัติ
  • โซลูชันที่มีเวลาในการตอบสนองต่ำที่เวลาในการตอบสนองปกติจะไม่เกิน 30 มิลลิวินาที
  • เก็บข้อมูลของคุณในศูนย์ข้อมูลหลายแห่งในภูมิภาคที่แตกต่างกัน เพื่อให้มั่นใจได้ว่า ความสามารถในการปรับขนาดทั่วโลกและความน่าเชื่อถือที่แข็งแกร่ง
  • พร้อมใช้งานในการกำหนดค่าระดับภูมิภาคหรือหลายภูมิภาคทั่วโลก
อ่านเพิ่มเติมเกี่ยวกับคุณลักษณะด้านประสิทธิภาพและความน่าเชื่อถือของ Cloud Firestore ในข้อตกลงระดับการให้บริการ
Realtime Database เป็นโซลูชันระดับภูมิภาค
  • พร้อมใช้งานในการกำหนดค่าระดับภูมิภาค ฐานข้อมูลถูกจำกัดในระดับโซน ที่พร้อมใช้งานในภูมิภาคหนึ่งๆ
  • เวลาในการตอบสนองต่ำมาก โดยมีเวลาตอบกลับโดยทั่วไปไม่เกิน 10 มิลลิวินาที CANNOT TRANSLATE ตัวเลือกนี้เหมาะสำหรับการซิงค์สถานะบ่อยๆ
อ่านเพิ่มเติมเกี่ยวกับคุณลักษณะด้านประสิทธิภาพและความน่าเชื่อถือของ 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)
  • กฎจะไม่เรียงซ้อนกันเว้นแต่คุณจะใช้ไวลด์การ์ด
  • กฎอาจจำกัดการค้นหา: หากผลการค้นหาอาจมีข้อมูล ผู้ใช้ไม่มีสิทธิ์เข้าถึง การค้นหาทั้งหมดจะล้มเหลว
ภาษาของกฎ Cascading ที่แยกการให้สิทธิ์กับการตรวจสอบความถูกต้อง
  • อ่านและเขียนจาก 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 ฐานข้อมูลในแอป

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

หากพร้อมที่จะเลือกฐานข้อมูลแล้ว

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