1MB เกิน firestore
ฉันกำลังจัดเก็บประวัติการเดินทาง (array-map) บน firestore แอปขัดข้อง (แอปพลิเคชัน Flutter) เมื่อพยายามจัดเก็บแผนที่อาร์เรย์ขนาดใหญ่ (ความยาวอาร์เรย์อาจมากกว่า 10,000) และยังมีมากกว่า 30 ช่องในเอกสารเดียวกัน
นี่คือแผนที่ของฉัน (รายการแผนที่)
Map<String, dynamic> toMap() => {
"latitude": latitude,
"longitude": longitude,
"accuracy": accuracy,
"altitude": altitude,
"speed": speed,
"speed_accuracy": speedAccuracy,
"heading": heading,
"time": time,
};
มีวิธีใดในการจัดเก็บอาร์เรย์ประเภทนี้บน firestore หรือไม่?
คำตอบ
ไม่สามารถเกินขนาดสูงสุดของเอกสารใน Firestore
สิ่งที่คุณควรทำแทนคือแยกข้อมูลแต่ละรายการลงในเอกสารของตัวเองซึ่งอาจอยู่ในคอลเล็กชันย่อยที่ซ้อนอยู่ภายใต้เอกสารหลัก
เอกสาร firestore มีพื้นที่เก็บข้อมูลสูงสุด 1MB ซึ่งไม่ได้หมายความว่านักพัฒนาจะต้องกรอกข้อมูลจนถึง 1MB เอกสารที่หนักกว่าจะมีข้อเสียดังนี้:
- ในเครือข่ายต่ำเอกสารจะไม่โหลด
- แทบจะไม่เกิดกรณีที่ผู้ใช้ต้องการเข้าถึงข้อมูลมากขนาดนั้น แบบจำลองข้อมูลเดียวไม่สามารถรองรับความต้องการทั้งหมดของแอปได้ดังนั้นข้อมูลจึงต้องแบ่งออกเป็นแบบจำลองข้อมูลหลายระดับ
- จะมีการเรียกเก็บเงินขาออกมากขึ้นสำหรับการสอบถามข้อมูลเพิ่มเติม
ดังนั้นคุณต้องสร้างแบบจำลองฐานข้อมูลของคุณโดยคำนึงถึงสิ่งเหล่านี้ ดังที่ Doug กล่าวไว้คุณควรแบ่งเนื้อหาของคุณออกเป็นหลาย ๆ เอกสาร