ดังนั้นฉันจึงเขียนโพสต์บล็อกทั้งหมดเกี่ยวกับคำถามนี้และฉันขอแนะนำให้คุณลองดู (หรือเอกสารประกอบอย่างเป็นทางการ ) เพื่อหาคำตอบที่สมบูรณ์ยิ่งขึ้น
แต่ถ้าคุณต้องการสรุปอย่างย่อ (-ish) นี่คือ:
การสืบค้นที่ดีขึ้นและข้อมูลที่มีโครงสร้างมากขึ้น - ในขณะที่ฐานข้อมูลเรียลไทม์เป็นเพียงต้นไม้ JSON ขนาดใหญ่ Cloud Firestore มีโครงสร้างที่เล็กน้อย ข้อมูลทั้งหมดของคุณประกอบด้วยเอกสาร (ซึ่งโดยทั่วไปเป็นร้านค้าคีย์ - ค่า) และคอลเลกชัน (ซึ่งเป็นชุดของเอกสาร) เอกสารจะชี้ไปที่การจัดเก็บย่อยบ่อยครั้งซึ่งมีเอกสารอื่นซึ่งพวกเขาสามารถมีเอกสารอื่น ๆ ได้เป็นต้น
ข้อมูลที่มีโครงสร้างนี้ช่วยคุณได้สองวิธี ก่อนอื่นการสืบค้นทั้งหมดจะตื้นซึ่งหมายความว่าคุณสามารถขอเอกสารได้โดยไม่ต้องหยิบข้อมูลทั้งหมดที่อยู่ด้านล่าง ซึ่งหมายความว่าคุณสามารถเก็บข้อมูลของคุณไว้ในลำดับชั้นในแบบที่เหมาะสมกับคุณมากขึ้นโดยไม่ต้องกังวลเกี่ยวกับการทำให้ฐานข้อมูลของคุณตื้น ประการที่สองคุณมีข้อความค้นหาที่มีประสิทธิภาพมากขึ้น ตัวอย่างเช่นตอนนี้คุณสามารถสืบค้นข้ามหลาย ๆ เขตข้อมูลได้โดยไม่ต้องสร้างเขตข้อมูล "คำสั่งผสม" ที่รวมข้อมูล (และลบล้าง) จากส่วนอื่น ๆ ของฐานข้อมูลของคุณ ในบางกรณี Cloud Firestore จะเรียกใช้ข้อความค้นหาเหล่านั้นโดยตรงและในกรณีอื่น ๆ มันจะสร้างและดูแลดัชนีให้คุณโดยอัตโนมัติ
ออกแบบมาเพื่อขยาย - Cloud Firestore จะสามารถปรับขนาดได้ดีกว่าฐานข้อมูลเรียลไทม์ สิ่งสำคัญคือให้สังเกตว่าคิวรีของคุณปรับขนาดตามขนาดของชุดผลลัพธ์ไม่ใช่ชุดข้อมูลของคุณ ดังนั้นการค้นหาจะยังคงรวดเร็วไม่ว่าชุดข้อมูลของคุณจะใหญ่แค่ไหน
การดึงข้อมูลด้วยตนเองง่ายขึ้น - เช่นเดียวกับฐานข้อมูลเรียลไทม์คุณสามารถตั้งค่าผู้ฟังใน Cloud Firestore เพื่อสตรีมในการเปลี่ยนแปลงตามเวลาจริง แต่ถ้าคุณไม่ต้องการมีพฤติกรรมแบบนั้นและต้องการเพียงแค่เรียก "เรียกข้อมูลของฉัน" อย่างง่ายๆ Cloud Firestore ก็มีเช่นกันและมันก็ถูกสร้างขึ้นในรูปแบบการใช้งานหลัก (พวกเขาดีกว่าการonce
โทรในฐานข้อมูลเรียลไทม์ที่ดิน)
การสนับสนุนหลายภูมิภาค - โดยทั่วไปหมายถึงความน่าเชื่อถือที่มากกว่าเนื่องจากข้อมูลของคุณจะถูกแชร์ในศูนย์ข้อมูลหลายแห่งพร้อมกัน แต่คุณยังมีความมั่นคงที่แข็งแกร่งซึ่งหมายความว่าคุณสามารถสอบถามได้ตลอดเวลาและมั่นใจได้ว่าคุณได้รับข้อมูลรุ่นล่าสุด
รูปแบบการกำหนดราคาที่แตกต่างกัน - ในขณะที่ฐานข้อมูลเรียลไทม์ส่วนใหญ่คิดตามการจัดเก็บหรือแบนด์วิดท์เครือข่าย Cloud Firestore จะคิดค่าบริการตามจำนวนของการดำเนินการ สิ่งนี้จะดีขึ้นหรือแย่ลง? ขึ้นอยู่กับแอพของคุณ
สำหรับการเปิดแอพข่าวเกมแบบผู้เล่นหลายคนเทิร์นเบสหรือสิ่งอื่น ๆ เช่น Stack Overflow เวอร์ชั่นของคุณเอง Cloud Firestore อาจดูดีจากมุมมองด้านราคา สำหรับบางสิ่งบางอย่างเช่นแอปการวาดภาพกลุ่มแบบเรียลไทม์ซึ่งคุณส่งการอัปเดตหลาย ๆ ครั้งต่อวินาทีไปยังหลาย ๆ คนอาจจะมีราคาแพงกว่าฐานข้อมูลเรียลไทม์
สาเหตุที่คุณยังอาจต้องการใช้ฐานข้อมูล Realtime - เหตุผลสองสามข้อ 1) ทั้งหมด "มันอาจจะถูกกว่าสำหรับแอพที่มีการอัปเดตบ่อย ๆ " สิ่งที่ฉันกล่าวถึงก่อนหน้านี้ 2) มันใช้เวลานานและได้รับการทดสอบการต่อสู้จากแอพนับพัน 3) มีความหน่วงแฝงที่ดีขึ้น และเมื่อคุณต้องการบางสิ่งที่มีความหน่วงแฝงต่ำที่เชื่อถือได้สำหรับความรู้สึกแบบเรียลไทม์ฐานข้อมูลแบบเรียลไทม์อาจทำงานได้ดีขึ้น
สำหรับแอพใหม่ส่วนใหญ่เราแนะนำให้คุณลองใช้ Cloud Firestore แต่ถ้าคุณมีแอพที่มีอยู่ในฐานข้อมูลเรียลไทม์แล้วฉันไม่แนะนำให้ทำการสลับเพื่อการสลับเปลี่ยนเว้นแต่คุณจะมีเหตุผลที่น่าสนใจ
หวังว่าจะช่วย!