DataSnapshot
มีข้อมูลจากตำแหน่งฐานข้อมูล
ทุกครั้งที่คุณอ่านข้อมูลจากฐานข้อมูล คุณจะได้รับข้อมูลในรูปแบบ DataSnapshot
. DataSnapshot
จะถูกส่งผ่านไปยังการเรียกกลับเหตุการณ์ที่คุณแนบด้วย on()
หรือ once()
. คุณสามารถแยกเนื้อหาของสแน็ปช็อตเป็นวัตถุ JavaScript ได้โดยการเรียกเมธอด val()
หรือคุณสามารถสำรวจเข้าไปในสแน็ปช็อตได้โดยการเรียก child()
เพื่อส่งคืนสแน็ปช็อตลูก (ซึ่งคุณสามารถเรียก val()
on ได้)
DataSnapshot
คือสำเนาข้อมูลที่สร้างขึ้นอย่างมีประสิทธิภาพและไม่เปลี่ยนรูปแบบที่ตำแหน่งฐานข้อมูล ไม่สามารถแก้ไขได้และจะไม่เปลี่ยนแปลง (ในการแก้ไขข้อมูล คุณจะต้องเรียกใช้เมธอด set()
บน Reference
โดยตรงเสมอ)
ลายเซ็น:
export declare class DataSnapshot
คุณสมบัติ
คุณสมบัติ | ตัวดัดแปลง | พิมพ์ | คำอธิบาย |
---|---|---|---|
สำคัญ | สตริง | โมฆะ | คีย์ (ส่วนสุดท้ายของเส้นทาง) ของตำแหน่งของ DataSnapshot นี้ โทเค็นสุดท้ายในตำแหน่งฐานข้อมูลถือเป็นกุญแจสำคัญ ตัวอย่างเช่น "ada" เป็นคีย์สำหรับโหนด /users/ada/ การเข้าถึงคีย์บน DataSnapshot ใดๆ จะส่งคืนคีย์สำหรับตำแหน่งที่สร้างขึ้น อย่างไรก็ตาม การเข้าถึงคีย์บน URL รากของฐานข้อมูลจะส่งกลับ null | |
ลำดับความสำคัญ | สตริง | หมายเลข | โมฆะ | รับค่าลำดับความสำคัญของข้อมูลใน DataSnapshot นี้ แอปพลิเคชันไม่จำเป็นต้องใช้ลำดับความสำคัญ แต่สามารถเรียงลำดับคอลเลกชันตามคุณสมบัติทั่วไปได้ (ดู การเรียงลำดับและการกรองข้อมูล ) | |
อ้างอิง | การอ้างอิงฐานข้อมูล | ตำแหน่งของ DataSnapshot นี้ | |
ขนาด | ตัวเลข | ส่งกลับจำนวนคุณสมบัติลูกของ DataSnapshot นี้ |
วิธีการ
วิธี | ตัวดัดแปลง | คำอธิบาย |
---|---|---|
เด็ก (เส้นทาง) | รับ DataSnapshot อื่นสำหรับตำแหน่งที่เส้นทางสัมพัทธ์ที่ระบุ การส่งผ่านเส้นทางสัมพัทธ์ไปยังเมธอด child() ของ DataSnapshot จะส่งคืน DataSnapshot อื่นสำหรับตำแหน่งที่เส้นทางสัมพัทธ์ที่ระบุ เส้นทางสัมพัทธ์อาจเป็นชื่อลูกธรรมดา (เช่น "ada") หรือเส้นทางที่ลึกกว่าและคั่นด้วยเครื่องหมายทับ (เช่น "ada/name/first") หากตำแหน่งลูกไม่มีข้อมูล DataSnapshot ที่ว่างเปล่า (นั่นคือ DataSnapshot ที่มีค่าเป็น null ) จะถูกส่งกลับ | |
มีอยู่() | คืนค่าเป็นจริงหาก DataSnapshot นี้มีข้อมูลใดๆ มีประสิทธิภาพมากกว่าการใช้ snapshot.val() !== null เล็กน้อย | |
ส่งออกVal() | ส่งออกเนื้อหาทั้งหมดของ DataSnapshot เป็นอ็อบเจ็กต์ JavaScript เมธอด exportVal() คล้ายกับ val() ยกเว้นข้อมูลลำดับความสำคัญรวมอยู่ด้วย (ถ้ามี) ทำให้เหมาะสำหรับการสำรองข้อมูลของคุณ | |
สำหรับแต่ละ(การกระทำ) | ระบุรายการระดับบนสุดใน IteratedDataSnapshot เนื่องจากวิธีการทำงานของออบเจ็กต์ JavaScript การเรียงลำดับข้อมูลในออบเจ็กต์ JavaScript ที่ส่งคืนโดย val() จึงไม่รับประกันว่าจะตรงกับการเรียงลำดับบนเซิร์ฟเวอร์หรือการเรียงลำดับของเหตุการณ์ onChildAdded() นั่นคือจุดที่ forEach() มีประโยชน์ รับประกันว่าลูกของ DataSnapshot จะถูกวนซ้ำตามลำดับการสืบค้น หากไม่มีการใช้เมธอด orderBy*() ที่ชัดเจน ผลลัพธ์จะถูกส่งกลับโดยเรียงลำดับตามคีย์ (เว้นแต่จะใช้ลำดับความสำคัญ ซึ่งในกรณีนี้ ผลลัพธ์จะถูกส่งกลับตามลำดับความสำคัญ) | |
hasChild (เส้นทาง) | คืนค่าเป็นจริงหากเส้นทางลูกที่ระบุมีข้อมูล (ไม่ใช่ค่าว่าง) | |
มีเด็ก() | ส่งคืนว่า DataSnapshot มีคุณสมบัติลูกที่ไม่เป็น null หรือไม่ คุณสามารถใช้ hasChildren() เพื่อตรวจสอบว่า DataSnapshot มีลูกหรือไม่ หากเป็นเช่นนั้น คุณสามารถระบุได้โดยใช้ forEach() หากไม่เป็นเช่นนั้น สแน็ปช็อตนี้จะมีค่าดั้งเดิม (ซึ่งสามารถดึงข้อมูลได้ด้วย val() ) หรือว่างเปล่า (ในกรณีนี้ val() จะส่งคืน null ) | |
ถึง JSON() | ส่งคืนการแสดงออบเจ็กต์ที่ทำให้เป็นอนุกรม JSON ของออบเจ็กต์นี้ได้ | |
วาล() | แยกค่า JavaScript จาก DataSnapshot ขึ้นอยู่กับข้อมูลใน DataSnapshot val() อาจส่งคืนประเภทสเกลาร์ (สตริง ตัวเลข หรือบูลีน) อาร์เรย์ หรืออ็อบเจ็กต์ นอกจากนี้ยังอาจส่งคืนค่าว่าง ซึ่งบ่งชี้ว่า DataSnapshot ว่างเปล่า (ไม่มีข้อมูล) |
DataSnapshot.key
คีย์ (ส่วนสุดท้ายของเส้นทาง) ของตำแหน่งของ DataSnapshot
นี้ .
โทเค็นสุดท้ายในตำแหน่งฐานข้อมูลถือเป็นกุญแจสำคัญ ตัวอย่างเช่น "ada" เป็นคีย์สำหรับโหนด /users/ada/ การเข้าถึงคีย์บน DataSnapshot
ใดๆ จะส่งคืนคีย์สำหรับตำแหน่งที่สร้างขึ้น อย่างไรก็ตาม การเข้าถึงคีย์บน URL รากของฐานข้อมูลจะคืน null
.
ลายเซ็น:
get key(): string | null;
DataSnapshot.priority
รับค่าลำดับความสำคัญของข้อมูลใน DataSnapshot
นี้ .
แอปพลิเคชันไม่จำเป็นต้องใช้ลำดับความสำคัญ แต่สามารถเรียงลำดับคอลเลกชันตามคุณสมบัติทั่วไปได้ (ดู การเรียงลำดับและการกรองข้อมูล )
ลายเซ็น:
get priority(): string | number | null;
DataSnapshot.ref
ตำแหน่งของ DataSnapshot นี้
ลายเซ็น:
readonly ref: DatabaseReference;
DataSnapshot.size
ส่งกลับจำนวนคุณสมบัติลูกของ DataSnapshot
นี้ .
ลายเซ็น:
get size(): number;
DataSnapshot.child()
รับ DataSnapshot
อื่นสำหรับตำแหน่งที่เส้นทางสัมพัทธ์ที่ระบุ
การส่งผ่านเส้นทางสัมพัทธ์ไปยังเมธอด child()
ของ DataSnapshot จะส่งคืน DataSnapshot
อื่นสำหรับตำแหน่งที่เส้นทางสัมพัทธ์ที่ระบุ เส้นทางสัมพัทธ์อาจเป็นชื่อลูกธรรมดา (เช่น "ada") หรือเส้นทางที่ลึกกว่าและคั่นด้วยเครื่องหมายทับ (เช่น "ada/name/first") หากตำแหน่งลูกไม่มีข้อมูล DataSnapshot
ว่างเปล่า (นั่นคือ DataSnapshot
ที่มีค่าเป็น null
) จะถูกส่งกลับ
ลายเซ็น:
child(path: string): DataSnapshot;
พารามิเตอร์
พารามิเตอร์ | พิมพ์ | คำอธิบาย |
---|---|---|
เส้นทาง | เชือก | เส้นทางสัมพัทธ์ไปยังตำแหน่งของข้อมูลลูก |
ผลตอบแทน:
DataSnapshot.exists ()
คืนค่าเป็นจริงหาก DataSnapshot
นี้มีข้อมูลใดๆ มันมีประสิทธิภาพมากกว่าการใช้ snapshot.val() !== null
เล็กน้อย .
ลายเซ็น:
exists(): boolean;
ผลตอบแทน:
บูลีน
DataSnapshot.exportVal()
ส่งออกเนื้อหาทั้งหมดของ DataSnapshot เป็นออบเจ็กต์ JavaScript
exportVal()
วิธีการคล้ายกับ val()
ยกเว้นข้อมูลลำดับความสำคัญรวมอยู่ด้วย (ถ้ามี) ทำให้เหมาะสำหรับการสำรองข้อมูลของคุณ
ลายเซ็น:
exportVal(): any;
ผลตอบแทน:
ใดๆ
เนื้อหาของ DataSnapshot เป็นค่า JavaScript (Object, Array, string, number, boolean หรือ null
).
DataSnapshot.forEach()
ระบุรายการระดับบนสุดใน IteratedDataSnapshot
.
เนื่องจากวิธีการทำงานของออบเจ็กต์ JavaScript การเรียงลำดับข้อมูลในออบเจ็กต์ JavaScript ที่ส่งคืนโดย val()
จึงไม่รับประกันว่าจะตรงกับการเรียงลำดับบนเซิร์ฟเวอร์หรือการเรียงลำดับของเหตุการณ์ onChildAdded()
นั่นคือจุดที่ forEach()
มีประโยชน์ รับประกันว่าลูกของ DataSnapshot
จะถูกวนซ้ำตามลำดับการสืบค้น
หากไม่มีการใช้เมธอด orderBy*()
ที่ชัดเจน ผลลัพธ์จะถูกส่งกลับโดยเรียงลำดับตามคีย์ (เว้นแต่จะใช้ลำดับความสำคัญ ซึ่งในกรณีนี้ ผลลัพธ์จะถูกส่งกลับตามลำดับความสำคัญ)
ลายเซ็น:
forEach(action: (child: IteratedDataSnapshot) => boolean | void): boolean;
พารามิเตอร์
พารามิเตอร์ | พิมพ์ | คำอธิบาย |
---|---|---|
การกระทำ | (ลูก: IteratedDataSnapshot ) => บูลีน | เป็นโมฆะ | ฟังก์ชั่นที่จะถูกเรียกใช้สำหรับ DataSnapshot ลูกแต่ละคน การโทรกลับสามารถคืนค่าเป็นจริงเพื่อยกเลิกการแจงนับเพิ่มเติม |
ผลตอบแทน:
บูลีน
เป็นจริงหากการแจงนับถูกยกเลิกเนื่องจากการเรียกกลับของคุณคืนค่าเป็นจริง
DataSnapshot.hasChild()
คืนค่าเป็นจริงหากเส้นทางลูกที่ระบุมีข้อมูล (ไม่ใช่ค่าว่าง)
ลายเซ็น:
hasChild(path: string): boolean;
พารามิเตอร์
พารามิเตอร์ | พิมพ์ | คำอธิบาย |
---|---|---|
เส้นทาง | เชือก | เส้นทางสัมพันธ์ไปยังตำแหน่งของเด็กที่มีศักยภาพ |
ผลตอบแทน:
บูลีน
true
หากมีข้อมูลอยู่ในเส้นทางลูกที่ระบุ อย่างอื่น false
.
DataSnapshot.hasChildren()
ส่งคืนว่า DataSnapshot
มีคุณสมบัติลูกที่ไม่เป็น null
หรือไม่
คุณสามารถใช้ hasChildren()
เพื่อตรวจสอบว่า DataSnapshot
มีลูกหรือไม่ หากเป็นเช่นนั้น คุณสามารถระบุได้โดยใช้ forEach()
. หากไม่เป็นเช่นนั้น สแน็ปช็อตนี้จะมีค่าดั้งเดิม (ซึ่งสามารถดึงข้อมูลได้ด้วย val()
) หรือว่างเปล่า (ในกรณีนี้ val()
จะส่งคืน null
).
ลายเซ็น:
hasChildren(): boolean;
ผลตอบแทน:
บูลีน
เป็นจริงหากสแน็ปช็อตนี้มีรายการย่อย อย่างอื่นเป็นเท็จ
DataSnapshot.toJSON()
ส่งคืนการแสดงออบเจ็กต์ที่ทำให้เป็นอนุกรม JSON ของออบเจ็กต์นี้ได้
ลายเซ็น:
toJSON(): object | null;
ผลตอบแทน:
วัตถุ | โมฆะ
DataSnapshot.val()
แยกค่า JavaScript จาก DataSnapshot
.
ขึ้นอยู่กับข้อมูลใน DataSnapshot
เมธอด val()
อาจส่งคืนประเภทสเกลาร์ (สตริง ตัวเลข หรือบูลีน) อาร์เรย์ หรืออ็อบเจ็กต์ นอกจากนี้ยังอาจส่งคืนค่าว่าง ซึ่งบ่งชี้ว่า DataSnapshot
ว่างเปล่า (ไม่มีข้อมูล)
ลายเซ็น:
val(): any;
ผลตอบแทน:
ใดๆ
เนื้อหาของ DataSnapshot เป็นค่า JavaScript (Object, Array, string, number, boolean หรือ null
).