DataSnapshot class

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

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 ).