DataSnapshot class

DataSnapshot ประกอบด้วยข้อมูลจากตำแหน่งฐานข้อมูล

เมื่อใดก็ตามที่อ่านข้อมูลจากฐานข้อมูล คุณจะได้รับข้อมูลเป็น DataSnapshot ระบบจะส่ง DataSnapshot ไปยัง Callback ของเหตุการณ์ที่คุณแนบด้วย on() หรือ once() คุณดึงเนื้อหาของสแนปชอตเป็นออบเจ็กต์ JavaScript ได้โดยเรียกใช้เมธอด val() นอกจากนี้ คุณยังข้ามผ่านไปยังสแนปชอตได้โดยเรียกใช้ child() เพื่อแสดงสแนปชอตย่อย (ซึ่งคุณเรียกใช้ val() ในหลังจากนั้นได้)

DataSnapshot เป็นสำเนาข้อมูลที่สร้างอย่างมีประสิทธิภาพและเปลี่ยนแปลงไม่ได้ในตำแหน่งฐานข้อมูล ซึ่งจะแก้ไขไม่ได้และจะไม่เปลี่ยนแปลง (หากต้องการแก้ไขข้อมูล ให้เรียกใช้เมธอด set() ใน Reference โดยตรงเสมอ)

ลายเซ็น:

export declare class DataSnapshot 

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ คีย์ตัวปรับแต่ง ประเภท คำอธิบาย
คีย์ สตริง | ค่าว่าง คีย์ (ส่วนสุดท้ายของเส้นทาง) ของตำแหน่งของ DataSnapshot นี้โทเค็นสุดท้ายในตำแหน่งฐานข้อมูลจะถือเป็นคีย์ของโทเค็นดังกล่าว เช่น "ada" เป็นคีย์สำหรับโหนด /users/ada/ การเข้าถึงคีย์ใน DataSnapshot ใดก็ตามจะแสดงคีย์ของตำแหน่งที่สร้างคีย์ แต่การเข้าถึงคีย์ใน URL รูทของฐานข้อมูลจะส่งกลับ null
ลำดับความสำคัญ สตริง | ตัวเลข | ค่าว่าง รับค่าลำดับความสำคัญของข้อมูลใน DataSnapshot นี้แอปพลิเคชันไม่จำเป็นต้องใช้ลำดับความสำคัญแต่สามารถเรียงลำดับคอลเล็กชันตามพร็อพเพอร์ตี้ทั่วไปได้ (ดูการจัดเรียงและกรองข้อมูล)
อ้างอิง ข้อมูลอ้างอิงฐานข้อมูล ตำแหน่งของ DataSnapshot นี้
ขนาด [size] ตัวเลข แสดงผลจำนวนพร็อพเพอร์ตี้ย่อยของ DataSnapshot นี้

เมธอด

วิธีการ คีย์ตัวปรับแต่ง คำอธิบาย
เส้นทาง(เส้นทาง) รับ DataSnapshot อีกรายการหนึ่งสำหรับสถานที่ตั้งในเส้นทางที่เกี่ยวข้องที่ระบุการส่งเส้นทางที่เกี่ยวข้องไปยังเมธอด child() ของ DataSnapshot จะแสดง DataSnapshot อีกรายการสำหรับตำแหน่งในเส้นทางที่เกี่ยวข้องที่ระบุ เส้นทางแบบสัมพัทธ์อาจเป็นชื่อย่อยแบบง่าย (เช่น "ada") หรือเส้นทางที่ลึกกว่าและคั่นด้วยเครื่องหมายทับ (เช่น "ada/name/first") หากตำแหน่งย่อยไม่มีข้อมูล ระบบจะแสดงผล DataSnapshot ที่ว่างเปล่า (นั่นคือ DataSnapshot ที่มีค่าเป็น null)
exists() แสดงค่า "จริง" หาก DataSnapshot นี้มีข้อมูล มีประสิทธิภาพมากกว่าการใช้ snapshot.val() !== null เล็กน้อย
exportVal() ส่งออกเนื้อหาทั้งหมดของ DataSnapshot เป็นออบเจ็กต์ JavaScriptเมธอด exportVal() คล้ายกับ val() ยกเว้นจะรวมข้อมูลลำดับความสำคัญ (หากมี) ซึ่งทำให้เหมาะสำหรับการสำรองข้อมูล
forแต่ละแคมเปญ(การดำเนินการ) แจกแจงรายการย่อยระดับบนสุดใน IteratedDataSnapshotเนื่องจากวิธีการทำงานของออบเจ็กต์ JavaScript จึงไม่รับประกันว่าการจัดลำดับข้อมูลในออบเจ็กต์ JavaScript ที่ val() ส่งคืนจะตรงกับการจัดลำดับบนเซิร์ฟเวอร์หรือการจัดลำดับเหตุการณ์ onChildAdded() นี่คือจุดที่ forEach() ช่วยคุณได้ วิธีนี้รับประกันว่ารายการย่อยของ DataSnapshot จะได้รับการทำซ้ำตามลำดับการค้นหาหากไม่ได้ใช้เมธอด orderBy*() อย่างชัดแจ้ง ผลลัพธ์จะแสดงผลเรียงตามคีย์ (เว้นแต่มีการใช้ลำดับความสำคัญ ซึ่งในกรณีนี้ ผลลัพธ์จะแสดงตามลำดับความสำคัญ)
hasChild(เส้นทาง) แสดงค่า "จริง" หากเส้นทางย่อยที่ระบุมีข้อมูล (ไม่เป็นค่าว่าง)
hasChildren() จะแสดงผลว่า DataSnapshot มีพร็อพเพอร์ตี้ย่อยที่ไม่ใช่ null หรือไม่คุณใช้ hasChildren() เพื่อระบุว่า DataSnapshot มีพร็อพเพอร์ตี้ย่อยหรือไม่ หากใช่ คุณสามารถแจกแจงรายการโดยใช้ forEach() หากไม่มี แสดงว่าสแนปชอตนี้มีค่าพื้นฐาน (ซึ่งดึงมาได้ด้วย val()) หรือเป็นค่าว่าง (ในกรณีนี้ val() จะแสดงผลค่า null)
toJSON() แสดงผลการนำเสนอ JSON แบบอนุกรมของออบเจ็กต์นี้
val() ดึงค่า JavaScript จาก DataSnapshotเมธอด val() อาจแสดงผลประเภทสเกลาร์ (สตริง ตัวเลข หรือบูลีน) อาร์เรย์ หรือออบเจ็กต์ ทั้งนี้ขึ้นอยู่กับข้อมูลในเมธอด DataSnapshot และอาจแสดงผลเป็น Null ด้วย ซึ่งแสดงว่า DataSnapshot ว่างเปล่า (ไม่มีข้อมูล)

DataSnapshot.key

คีย์ (ส่วนสุดท้ายของเส้นทาง) ของตำแหน่งของ DataSnapshot นี้

โทเค็นสุดท้ายในตำแหน่งฐานข้อมูลจะถือเป็นคีย์ของโทเค็นนั้น เช่น "ada" เป็นคีย์สำหรับโหนด /users/ada/ การเข้าถึงคีย์ใน DataSnapshot ใดก็ตามจะแสดงคีย์ของตำแหน่งที่สร้างคีย์ แต่การเข้าถึงคีย์ใน URL รูทของฐานข้อมูลจะส่งกลับ null

ลายเซ็น:

get key(): string | null;

DataSnapshot.ลำดับความสำคัญ

รับค่าลำดับความสำคัญของข้อมูลใน 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;

การคืนสินค้า:

boolean

DataSnapshot.exportVal()

ส่งออกเนื้อหาทั้งหมดของ DataSnapshot เป็นออบเจ็กต์ JavaScript

เมธอด exportVal() คล้ายกับ val() แต่จะไม่รวมข้อมูลลำดับความสำคัญ (หากมี) จึงเหมาะสำหรับการสำรองข้อมูลของคุณ

ลายเซ็น:

exportVal(): any;

การคืนสินค้า:

ทั้งหมด

เนื้อหาของ DataSnapshot เป็นค่า JavaScript (ออบเจ็กต์ อาร์เรย์ สตริง ตัวเลข บูลีน หรือnull)

DataSnapshot.for each()

แจกแจงรายการย่อยระดับบนสุดใน IteratedDataSnapshot

เนื่องจากวิธีการทำงานของออบเจ็กต์ JavaScript จึงไม่รับประกันว่าการจัดลำดับข้อมูลในออบเจ็กต์ JavaScript ที่ val() ส่งคืนจะตรงกับการจัดลำดับบนเซิร์ฟเวอร์หรือการจัดลำดับเหตุการณ์ onChildAdded() นี่คือจุดที่ forEach() ช่วยคุณได้ เพื่อรับประกันว่ารายการย่อยของ DataSnapshot จะได้รับการทำซ้ำตามลำดับการค้นหา

หากไม่มีการใช้เมธอด orderBy*() ที่ชัดเจน ระบบจะส่งผลลัพธ์แสดงการเรียงลำดับตามคีย์ (เว้นแต่มีการใช้ลำดับความสำคัญ ซึ่งในกรณีนี้ ผลลัพธ์จะแสดงตามลำดับความสำคัญ)

ลายเซ็น:

forEach(action: (child: IteratedDataSnapshot) => boolean | void): boolean;

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
การทำงาน (ย่อย: IteratedDataSnapshot) => บูลีน | เป็นโมฆะ ฟังก์ชันที่จะถูกเรียกสำหรับ DataSnapshot ย่อยแต่ละรายการ Callback อาจแสดงผลเป็น "จริง" เพื่อยกเลิกการแจกแจงเพิ่มเติม

การคืนสินค้า:

boolean

จริง หากการแจงนับถูกยกเลิกเนื่องจาก Callback ของคุณแสดงค่า true

DataSnapshot.hasChild()

แสดงค่า "จริง" หากเส้นทางย่อยที่ระบุมีข้อมูล (ไม่เป็นค่าว่าง)

ลายเซ็น:

hasChild(path: string): boolean;

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
เส้นทาง สตริง เส้นทางแบบสัมพัทธ์ไปยังตำแหน่งของผู้มีโอกาสเป็นเด็ก

การคืนสินค้า:

boolean

true หากมีข้อมูลอยู่ที่เส้นทางย่อยที่ระบุ อื่นๆ false

DataSnapshot.hasChildren()

จะแสดงผลว่า DataSnapshot มีพร็อพเพอร์ตี้ย่อยที่ไม่ใช่ null หรือไม่

คุณใช้ hasChildren() เพื่อระบุว่า DataSnapshot มีบุตรหลานหรือไม่ได้ หากใช่ คุณสามารถแจกแจงรายการได้โดยใช้ forEach() หากไม่มี แสดงว่าสแนปชอตนี้มีค่าพื้นฐาน (ซึ่งดึงมาได้ด้วย val()) หรือเป็นค่าว่าง (ในกรณีนี้ val() จะแสดงผลค่า null)

ลายเซ็น:

hasChildren(): boolean;

การคืนสินค้า:

boolean

เป็นจริงหากสแนปชอตนี้มีลูก "อื่นๆ" เท็จ

DataSnapshot.toJSON()

แสดงผลการนำเสนอ JSON แบบอนุกรมของออบเจ็กต์นี้

ลายเซ็น:

toJSON(): object | null;

การคืนสินค้า:

ออบเจ็กต์ | ค่าว่าง

DataSnapshot.val()

ดึงค่า JavaScript จาก DataSnapshot

เมธอด val() อาจแสดงผลประเภทสเกลาร์ (สตริง ตัวเลข หรือบูลีน) อาร์เรย์ หรือออบเจ็กต์ ทั้งนี้ขึ้นอยู่กับข้อมูลใน DataSnapshot และอาจแสดงผลเป็น Null ด้วย ซึ่งแสดงว่า DataSnapshot ว่างเปล่า (ไม่มีข้อมูล)

ลายเซ็น:

val(): any;

การคืนสินค้า:

ทั้งหมด

เนื้อหาของ DataSnapshot เป็นค่า JavaScript (ออบเจ็กต์ อาร์เรย์ สตริง ตัวเลข บูลีน หรือnull)