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