ทาง Firebase ได้ปล่อย Cloud Firestore ใน beta version
ซึ่งเป็น NoSQL database มีโครงสร้างข้อมูลแบบ Document
พูดง่าย ๆ คือโครงสร้างข้อมูลเดียวกับ MongoDB
แต่อยู่บน Cloud platform นั่นเอง

สามารถใช้ทั้ง iOS, Android และ Web
ตลอดจนสามารถ integate ได้กับของที่มีอยู่ใน Firebase ได้เลย
รวมทั้ง Google Cloud Platform, Cloud function

ยังไม่พอนะ
ตามแนวทางของ Firebase คือใช้ง่ายและรองรับการ scale อีกด้วย

ความสามารถหลัก ๆ ของ Cloud Firestore

  • Document-based และ collection ตามปกติ
  • รองรับการทำงานแบบ offline mode ทั้ง Android, iOS และ Web
  • Realtime synchronous
  • ทำการ Replicate ข้อมูลแบบ multi-region ให้แบบอัตโนมัติ ทำให้ไม่ต้องกลัวข้อมูลหาย ถ้าโลกไม่แตก !!
  • มี SDK ให้ใช้พัฒนาทั้งภาษา Node, Python, Go และ Java

ไปดู VDO แนะนำได้เลย

สิ่งที่น่าสนใจมาก ๆ สำหรับนักพัฒนาคือ

จัดเก็บข้อมูลเป็น Document-based นี่แหละ
ที่น่าจะเข้าใจได้ง่าย ไม่ต้องเรียนรู้อะไรเพิ่มเติมมากนัก
ยิ่งเป็น infrastructure ของ Google อีก รวดเร็วแน่นอน

ในการพัฒนาระบบจะมี collection ที่สัมพันธ์กัน หรือ sub-collection
ทำให้การออกแบบง่ายขึ้น

ในการดึงข้อมูล จะดึงเท่าที่จำเป็นเท่านั้น (shallow)
นั่นหมายความว่าไม่ต้องไปดึงข้อมูลที่สัมพันธ์กันมาทั้งหมด
ดังนั้นความสัมพันธ์ที่เราเห็นนั้น
มันเป็นแค่ในแง่ของ logical เท่านั้น
ซึ่งตรงนี้ส่งผลต่อประสิทธิภาพในการดึงข้อมูลอย่างมาก

แถมมีคำแนะนำให้สร้าง index อีกด้วย

ส่วนเรื่อง security ก็มีมาให้
เพราะว่าได้เตรียมเรื่อง security rule มาให้พร้อมเลย
ทำให้สามารถควบคุมสิทธิ์ในการเข้าถึงข้อมูลได้

อีกอย่างหนึ่งถ้าใครใช้ Realtime database มาก่อน

จะพบว่า ถ้า app มีขนาดใหญ่และการเก็บข้อมูลซับซ้อนขึ้น
จะทำให้ JSON data model มันซับซ้อนและมีปัญหาเรื่องประสิทธิภาพ ได้
ดังนั้น Cloud Firestore จึงเข้ามาช่วยตรงจุดนี้

มาถึงเรื่อง Pricing บ้าง จะต่างกับ Realtime database เลย

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

ดังนั้นนักพัฒนาลองมาใช้งานกันดู

เริ่มได้จาก Sample App
มี CodeLab ให้อีก ใจดีมาก ๆ

ถ้ามีปัญหาอะไรก็ไปถามใน StackOverflow ได้

เพิ่มเติมสำหรับ Android Developer

สำหรับชาว Web Developer

ขอให้สนุกกับการ coding นะครับ