Google 致力于为黑人社区推动种族平等。查看具体举措
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

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

Firebase นำเสนอโซลูชันฐานข้อมูลบนคลาวด์สองแบบที่ไคลเอนต์เข้าถึงได้ซึ่งรองรับการซิงค์ข้อมูลแบบเรียลไทม์:

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

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

Firebase แนะนำฐานข้อมูลใด

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

โซลูชันทั้งสองเสนอ:

  • SDK สำหรับไคลเอ็นต์แรกโดยไม่มีเซิร์ฟเวอร์ในการปรับใช้และบำรุงรักษา
  • การอัปเดตตามเวลาจริง
  • ระดับฟรีแล้วจ่ายตามที่คุณใช้

ข้อควรพิจารณาที่สำคัญ

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

บทบาทของฐานข้อมูล
แอปของฉันใช้ฐานข้อมูลสำหรับ ...
การซิงโครไนซ์ข้อมูลเป็นหลักด้วยการสืบค้นพื้นฐาน
หากคุณไม่ต้องการการสืบค้นการเรียงลำดับและการทำธุรกรรมขั้นสูงเราขอแนะนำ ฐานข้อมูลแบบเรียลไทม์
การสืบค้นการเรียงลำดับและธุรกรรมขั้นสูง
หากคุณต้องการการโต้ตอบที่ซับซ้อนกับข้อมูลของคุณเช่นในแอปอีคอมเมิร์ซเราขอแนะนำ Cloud Firestore
การดำเนินการกับข้อมูล
การใช้ฐานข้อมูลของแอปของฉันดูเหมือน ...
ข้อมูลไม่กี่ GB หรือน้อยกว่าที่มีการเปลี่ยนแปลงบ่อย
หากแอปของคุณจะส่งสตรีมอัปเดตเล็ก ๆ เช่นในแอปไวท์บอร์ดดิจิทัลเราขอแนะนำ ฐานข้อมูลเรียลไทม์
ข้อมูลหลายร้อย GB ถึง TB ซึ่งถูกอ่านบ่อยกว่าที่มีการเปลี่ยนแปลง
สำหรับชุดข้อมูลที่มีขนาดใหญ่มากและเมื่อจำเป็นต้องใช้งานเป็นกลุ่มบ่อยครั้งเราขอแนะนำ Cloud Firestore
แบบจำลองข้อมูล
ฉันต้องการจัดโครงสร้างข้อมูลของฉันเป็น ...
แผนภูมิ JSON แบบง่าย
สำหรับข้อมูลที่ไม่มีโครงสร้าง JSON เราขอแนะนำ Realtime Database
เอกสารจัดเป็นคอลเลคชัน
สำหรับเอกสารที่มีโครงสร้างและคอลเล็กชันเราขอแนะนำ Cloud Firestore
ความพร้อมใช้งาน
ความต้องการความพร้อมของฉันคือ ...
รับประกันความพร้อมในการทำงานสูงมากถึง 99.999%
หากความพร้อมใช้งานมีความสำคัญสูงสุดตัวอย่างเช่นในแอปอีคอมเมิร์ซเราขอแนะนำ Cloud Firestore
รับประกันความพร้อมในการทำงานอย่างน้อย 99.95%
เมื่อยอมรับความพร้อมใช้งานที่สูงมาก แต่ไม่ถึงขั้นวิกฤตเราขอแนะนำให้ใช้ Cloud Firestore หรือ Realtime Database
การค้นหาแบบออฟไลน์เกี่ยวกับข้อมูลในเครื่อง
แอพของฉันจะต้องดำเนินการค้นหาบนอุปกรณ์ที่มีการเชื่อมต่อ จำกัด หรือไม่มีเลย ...
บ่อยครั้ง
สำหรับความสามารถในการสืบค้นข้อมูลที่ซับซ้อนในข้อมูลในเครื่องเมื่อผู้ใช้ออฟไลน์เราขอแนะนำ Cloud Firestore
น้อยครั้งหรือไม่เคย
หากคุณคาดว่าผู้ใช้ของคุณจะออนไลน์อย่างสม่ำเสมอเราขอแนะนำ Cloud Firestore หรือ Realtime Database
จำนวนอินสแตนซ์ฐานข้อมูล
ในแต่ละโครงการของฉันฉันต้องใช้ ...
ฐานข้อมูลจำนวนมากเช่นฐานข้อมูลสำหรับลูกค้ารายใหญ่แต่ละราย
เนื่องจากช่วยให้คุณสามารถเพิ่มฐานข้อมูลจำนวนมากในโครงการ Firebase เดียวได้เราจึงขอแนะนำ ฐานข้อมูลแบบเรียลไทม์
เพียงฐานข้อมูลเดียว
หากคุณต้องการฐานข้อมูลเดียวเราขอแนะนำ Cloud Firestore หรือ Realtime Database

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

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

แบบจำลองข้อมูล

ทั้งฐานข้อมูลเรียลไทม์และ Cloud Firestore เป็นฐานข้อมูล NoSQL

ฐานข้อมูลเรียลไทม์ Cloud Firestore
จัดเก็บข้อมูลเป็นแผนภูมิ JSON ขนาดใหญ่หนึ่งต้น
  • ข้อมูลที่เรียบง่ายนั้นง่ายมากในการจัดเก็บ
  • ข้อมูลแบบลำดับชั้นที่ซับซ้อนจะจัดระเบียบตามขนาดได้ยากกว่า

เรียนรู้เพิ่มเติมเกี่ยวกับ แบบจำลองข้อมูลฐานข้อมูลแบบเรียลไทม์

จัดเก็บข้อมูลเป็นชุดเอกสาร
  • ข้อมูลธรรมดานั้นง่ายต่อการจัดเก็บในเอกสารซึ่งคล้ายกับ JSON มาก
  • ข้อมูลแบบลำดับชั้นที่ซับซ้อนจะจัดระเบียบตามขนาดได้ง่ายกว่าโดยใช้คอลเล็กชันย่อยภายในเอกสาร
  • ต้องการการทำให้เป็นปกติน้อยลงและการทำให้ข้อมูลแบนราบ

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

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

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

ฐานข้อมูลเรียลไทม์ Cloud Firestore
การสนับสนุนออฟไลน์สำหรับไคลเอนต์ iOS และ Android การสนับสนุนออฟไลน์สำหรับ iOS, Android และไคลเอนต์เว็บ

การแสดงตน

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

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

การสืบค้น

ดึงข้อมูลเรียงลำดับและกรองข้อมูลจากฐานข้อมูลใดก็ได้ผ่านแบบสอบถาม

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

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

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

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

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

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

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

ความปลอดภัย

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

ราคา

โซลูชันทั้งสองมีอยู่ใน แผนการกำหนดราคาของ Spark และ Blaze

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

อ่านเพิ่มเติมเกี่ยวกับ แผนการกำหนดราคาฐานข้อมูลแบบเรียลไทม์

คิดค่าบริการโดยหลักจาก การดำเนินการในฐานข้อมูลของคุณ (อ่านเขียนลบ) และในอัตราที่ต่ำกว่าแบนด์วิดท์และพื้นที่เก็บข้อมูล

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

อ่านเพิ่มเติมเกี่ยวกับ แผนการกำหนดราคาของ Cloud Firestore

ใช้ Cloud Firestore และ Realtime Database

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

เรียนรู้เพิ่มเติมเกี่ยวกับคุณลักษณะที่มีอยู่ใน ฐานข้อมูลแบบเรียลไทม์ และ Cloud Firestore

พร้อมที่จะเลือกฐานข้อมูลหรือยัง?

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