Catch up on highlights from Firebase at Google I/O 2023. Learn more

ประเภทข้อมูลที่รองรับ

หน้านี้อธิบายประเภทข้อมูลที่ Cloud Firestore รองรับ

ประเภทข้อมูล

ตารางต่อไปนี้แสดงประเภทข้อมูลที่ Cloud Firestore รองรับ นอกจากนี้ยังอธิบายลำดับการจัดเรียงที่ใช้เมื่อเปรียบเทียบค่าประเภทเดียวกัน:

ประเภทข้อมูล เรียงลำดับ หมายเหตุ
อาร์เรย์ ตามค่าองค์ประกอบ

อาร์เรย์ไม่สามารถมีค่าอาร์เรย์อื่นเป็นหนึ่งในองค์ประกอบ

ภายในอาร์เรย์ องค์ประกอบจะรักษาตำแหน่งที่กำหนดให้กับพวกเขา เมื่อจัดเรียงอาร์เรย์ตั้งแต่สองตัวขึ้นไป อาร์เรย์จะเรียงลำดับตามค่าองค์ประกอบ

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

ตัวอย่างเช่น [1, 2, 3] < [1, 2, 3, 1] < [2] อาร์เรย์ [2] มีค่าองค์ประกอบแรกมากที่สุด อาร์เรย์ [1, 2, 3] มีองค์ประกอบเท่ากับสามองค์ประกอบแรกของ [1, 2, 3, 1] แต่มีความยาวสั้นกว่า

บูลีน false < true
ไบต์ คำสั่งไบต์ มากถึง 1,048,487 ไบต์ (1 MiB - 89 ไบต์) ข้อความค้นหาจะพิจารณาเฉพาะ 1,500 ไบต์แรกเท่านั้น
วันและเวลา ลำดับเหตุการณ์ เมื่อเก็บไว้ใน Cloud Firestore แม่นยำเพียงไมโครวินาที ความแม่นยำเพิ่มเติมจะถูกปัดเศษลง
จำนวนจุดลอยตัว ตัวเลข ความแม่นยำสองเท่า 64 บิต IEEE 754
จุดทางภูมิศาสตร์ ตามละติจูด ลองจิจูด ในขณะนี้ เราไม่แนะนำให้ใช้ข้อมูลประเภทนี้เนื่องจากข้อจำกัดในการสืบค้น โดยทั่วไป จะดีกว่าหากจัดเก็บละติจูดและลองจิจูดเป็นฟิลด์ตัวเลขแยกกัน หากแอปของคุณต้องการการสืบค้นทางภูมิศาสตร์ตามระยะทางอย่างง่าย โปรดดู การสืบค้นทางภูมิศาสตร์
จำนวนเต็ม ตัวเลข 64 บิต เซ็นชื่อ
แผนที่ ตามคีย์แล้วตามด้วยค่า

แสดงถึงวัตถุที่ฝังอยู่ภายในเอกสาร เมื่อจัดทำดัชนี คุณสามารถค้นหาในฟิลด์ย่อยได้ หากคุณแยกค่านี้ออกจากการจัดทำดัชนี ฟิลด์ย่อยทั้งหมดจะถูกแยกออกจากการจัดทำดัชนีด้วย

การเรียงลำดับคีย์จะเรียงลำดับเสมอ ตัวอย่างเช่น หากคุณเขียน {c: "foo", a: "bar", b: "qux"} แผนที่จะถูกจัดเรียงตามคีย์และบันทึกเป็น {a: "bar", b: "qux", c: "foo"} .

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

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

น่าน ไม่มี
โมฆะ ไม่มี
อ้างอิง ตามองค์ประกอบพาธ (คอลเล็กชัน ID เอกสาร คอลเล็กชัน ID เอกสาร...) ตัวอย่างเช่น projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]
สตริงข้อความ ลำดับไบต์ที่เข้ารหัส UTF-8 มากถึง 1,048,487 ไบต์ (1 MiB - 89 ไบต์) เคียวรีจะพิจารณาเฉพาะ 1,500 ไบต์แรกของการแทน UTF-8

การสั่งซื้อประเภทมูลค่า

เมื่อแบบสอบถามเกี่ยวข้องกับฟิลด์ที่มีค่าประเภทผสมกัน Cloud Firestore จะใช้ลำดับที่กำหนดขึ้นตามการแสดงภายใน รายการต่อไปนี้แสดงลำดับ:

  1. ค่า Null
  2. ค่าบูลีน
  3. ค่า NaN
  4. ค่าจำนวนเต็มและทศนิยม เรียงตามลำดับตัวเลข
  5. ค่าวันที่
  6. ค่าสตริงข้อความ
  7. ค่าไบต์
  8. การอ้างอิง Cloud Firestore
  9. ค่าจุดทางภูมิศาสตร์
  10. ค่าอาร์เรย์
  11. ค่าแผนที่