1MB เกิน firestore

Oct 17 2020

ฉันกำลังจัดเก็บประวัติการเดินทาง (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 หรือไม่?

คำตอบ

1 DougStevenson Oct 16 2020 at 22:15

ไม่สามารถเกินขนาดสูงสุดของเอกสารใน Firestore

สิ่งที่คุณควรทำแทนคือแยกข้อมูลแต่ละรายการลงในเอกสารของตัวเองซึ่งอาจอยู่ในคอลเล็กชันย่อยที่ซ้อนอยู่ภายใต้เอกสารหลัก

Harkal Oct 16 2020 at 22:48

เอกสาร firestore มีพื้นที่เก็บข้อมูลสูงสุด 1MB ซึ่งไม่ได้หมายความว่านักพัฒนาจะต้องกรอกข้อมูลจนถึง 1MB เอกสารที่หนักกว่าจะมีข้อเสียดังนี้:

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

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