DataSnapshot class

DataSnapshot chứa dữ liệu từ vị trí Cơ sở dữ liệu.

Bất cứ khi nào bạn đọc dữ liệu từ Cơ sở dữ liệu, bạn sẽ nhận được dữ liệu dưới dạng DataSnapshot. DataSnapshot được chuyển đến các lệnh gọi lại sự kiện mà bạn đính kèm bằng on() hoặc once(). Bạn có thể trích xuất nội dung của bản tổng quan nhanh dưới dạng đối tượng JavaScript bằng cách gọi phương thức val(). Ngoài ra, bạn có thể chuyển vào bản tổng quan nhanh bằng cách gọi child() để trả về bản tổng quan nhanh về con (sau đó bạn có thể gọi val() để bật).

DataSnapshot là bản sao dữ liệu bất biến được tạo một cách hiệu quả tại một vị trí Cơ sở dữ liệu. Phương thức này không thể sửa đổi và sẽ không bao giờ thay đổi (để sửa đổi dữ liệu, bạn luôn gọi phương thức set() trực tiếp trên Reference).

Chữ ký:

export declare class DataSnapshot 

Thuộc tính

Tài sản Công cụ sửa đổi Loại Mô tả
khoá chuỗi | rỗng Khoá (phần cuối của đường dẫn) của vị trí của DataSnapshot này.Mã thông báo cuối cùng ở vị trí Cơ sở dữ liệu được coi là khoá của khoá đó. Ví dụ: "ada" là khoá cho nút /users/ada/. Thao tác truy cập khoá trên bất kỳ DataSnapshot nào sẽ trả về khoá cho vị trí tạo ra khoá đó. Tuy nhiên, việc truy cập khoá vào URL gốc của Cơ sở dữ liệu sẽ trả về null.
mức độ ưu tiên chuỗi | số | rỗng Lấy giá trị ưu tiên của dữ liệu trong DataSnapshot này.Các ứng dụng không cần dùng mức độ ưu tiên nhưng có thể sắp xếp các bộ sưu tập theo thuộc tính thông thường (xem phần Sắp xếp và lọc dữ liệu).
tham chiếu DatabaseReference (Tham chiếu cơ sở dữ liệu) Vị trí của ảnh chụp DataSnapshot này.
kích thước số Trả về số lượng thuộc tính con của DataSnapshot này.

Phương thức

Phương thức Công cụ sửa đổi Mô tả
child(đường dẫn) Nhận một DataSnapshot khác cho vị trí tại đường dẫn tương đối được chỉ định.Việc truyền một đường dẫn tương đối đến phương thức child() của DataSnapshot sẽ trả về một DataSnapshot khác cho vị trí tại đường dẫn tương đối được chỉ định. Đường dẫn tương đối có thể là tên con đơn giản (ví dụ: "ada") hoặc đường dẫn sâu hơn được phân tách bằng dấu gạch chéo (ví dụ: "ada/name/first"). Nếu vị trí con không có dữ liệu, thì DataSnapshot trống (tức là DataSnapshot có giá trị là null) sẽ được trả về.
exists() Trả về true nếu DataSnapshot này chứa dữ liệu bất kỳ. Cách này hiệu quả hơn một chút so với sử dụng snapshot.val() !== null.
exportVal() Xuất toàn bộ nội dung của DataSnapshot dưới dạng đối tượng JavaScript.Phương thức exportVal() tương tự như val(), ngoại trừ việc có thông tin ưu tiên (nếu có) để phù hợp với việc sao lưu dữ liệu của bạn.
forEach(action) Liệt kê các phần tử con cấp cao nhất trong IteratedDataSnapshot.Do cách thức hoạt động của các đối tượng JavaScript, nên thứ tự dữ liệu trong đối tượng JavaScript do val() trả về không đảm bảo khớp với thứ tự trên máy chủ cũng như thứ tự của sự kiện onChildAdded(). Đó là lúc forEach() phát huy tác dụng. Phương thức này đảm bảo các phần tử con của DataSnapshot sẽ được lặp lại theo thứ tự truy vấn.Nếu bạn không sử dụng phương thức orderBy*() rõ ràng nào, kết quả sẽ được trả về theo thứ tự khoá (trừ phi bạn sử dụng mức độ ưu tiên, các kết quả sẽ được trả về theo mức độ ưu tiên).
hasChild(path) Trả về true nếu đường dẫn con được chỉ định có dữ liệu (không có giá trị rỗng).
hasTrẻ() Trả về xem DataSnapshot có thuộc tính con nào không phải là null hay không.Bạn có thể sử dụng hasChildren() để xác định xem DataSnapshot có thuộc tính con nào không. Nếu có, bạn có thể liệt kê chúng bằng forEach(). Nếu không, thì bản tổng quan nhanh này sẽ chứa một giá trị gốc (có thể truy xuất được bằng val()) hoặc để trống (trong trường hợp này, val() sẽ trả về null).
toJSON() Trả về một bản trình bày có thể chuyển đổi tuần tự JSON của đối tượng này.
val() Trích xuất giá trị JavaScript từ DataSnapshot.Tuỳ thuộc vào dữ liệu trong DataSnapshot, phương thức val() có thể trả về một kiểu vô hướng (chuỗi, số hoặc boolean), mảng hoặc đối tượng. Mã này cũng có thể trả về giá trị rỗng, cho biết DataSnapshot trống (không chứa dữ liệu).

DataSnapshot.key

Khoá (phần cuối của đường dẫn) của vị trí của DataSnapshot này.

Mã thông báo cuối cùng trong một vị trí Cơ sở dữ liệu sẽ được coi là khoá của cơ sở dữ liệu đó. Ví dụ: "ada" là khoá cho nút /users/ada/. Thao tác truy cập khoá trên bất kỳ DataSnapshot nào sẽ trả về khoá cho vị trí tạo ra khoá đó. Tuy nhiên, việc truy cập khoá vào URL gốc của Cơ sở dữ liệu sẽ trả về null.

Chữ ký:

get key(): string | null;

DataSnapshot.Priority

Lấy giá trị ưu tiên của dữ liệu trong DataSnapshot này.

Ứng dụng không cần dùng mức độ ưu tiên nhưng có thể sắp xếp các bộ sưu tập theo thuộc tính thông thường (xem phần Sắp xếp và lọc dữ liệu).

Chữ ký:

get priority(): string | number | null;

DataSnapshot.ref

Vị trí của ảnh chụp DataSnapshot này.

Chữ ký:

readonly ref: DatabaseReference;

DataSnapshot.size

Trả về số lượng thuộc tính con của DataSnapshot này.

Chữ ký:

get size(): number;

DataSnapshot.child()

Nhận một DataSnapshot khác cho vị trí tại đường dẫn tương đối được chỉ định.

Việc chuyển một đường dẫn tương đối đến phương thức child() của DataSnapshot sẽ trả về một DataSnapshot khác cho vị trí tại đường dẫn tương đối được chỉ định. Đường dẫn tương đối có thể là tên con đơn giản (ví dụ: "ada") hoặc đường dẫn sâu hơn được phân tách bằng dấu gạch chéo (ví dụ: "ada/name/first"). Nếu vị trí con không có dữ liệu, thì DataSnapshot trống (tức là DataSnapshot có giá trị là null) sẽ được trả về.

Chữ ký:

child(path: string): DataSnapshot;

Thông số

Thông số Loại Mô tả
đường dẫn chuỗi Đường dẫn tương đối đến vị trí của dữ liệu con.

Trường hợp trả lại hàng:

Ảnh chụp nhanh về dữ liệu

DataSnapshot.exists()

Trả về true nếu DataSnapshot này chứa dữ liệu bất kỳ. Cách này hiệu quả hơn một chút so với sử dụng snapshot.val() !== null.

Chữ ký:

exists(): boolean;

Trường hợp trả lại hàng:

boolean

DataSnapshot.exportVal()

Xuất toàn bộ nội dung của DataSnapshot dưới dạng đối tượng JavaScript.

Phương thức exportVal() này tương tự như val(), ngoại trừ việc bao gồm thông tin ưu tiên (nếu có) để phù hợp với việc sao lưu dữ liệu của bạn.

Chữ ký:

exportVal(): any;

Trường hợp trả lại hàng:

bất kỳ

Nội dung của DataSnapshot dưới dạng giá trị JavaScript (Object, Array, string, number, boolean hoặc null).

DataSnapshot.forEach()

Liệt kê các phần tử con cấp cao nhất trong IteratedDataSnapshot.

Do cách thức hoạt động của các đối tượng JavaScript, nên thứ tự dữ liệu trong đối tượng JavaScript do val() trả về không được đảm bảo khớp với thứ tự trên máy chủ cũng như thứ tự của các sự kiện onChildAdded(). Đó là lúc forEach() phát huy tác dụng. Phương thức này đảm bảo các phần tử con của DataSnapshot sẽ được lặp lại theo thứ tự truy vấn.

Nếu bạn không sử dụng phương thức orderBy*() rõ ràng nào, thì kết quả sẽ được trả về theo thứ tự khoá (trừ phi sử dụng mức độ ưu tiên, trong trường hợp này, kết quả sẽ được trả về theo mức độ ưu tiên).

Chữ ký:

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

Thông số

Thông số Loại Mô tả
hành động, action (con: IteratedDataSnapshot) => boolean | trống Một hàm sẽ được gọi cho mỗi DataSnapảnh con. Lệnh gọi lại có thể trả về giá trị true để huỷ thao tác liệt kê thêm.

Trường hợp trả lại hàng:

boolean

true nếu quá trình liệt kê đã bị huỷ do lệnh gọi lại của bạn trả về giá trị true.

DataSnapshot.hasChild()

Trả về true nếu đường dẫn con được chỉ định có dữ liệu (không có giá trị rỗng).

Chữ ký:

hasChild(path: string): boolean;

Thông số

Thông số Loại Mô tả
đường dẫn chuỗi Đường dẫn tương đối đến vị trí của trẻ tiềm năng.

Trường hợp trả lại hàng:

boolean

true nếu dữ liệu tồn tại tại đường dẫn con được chỉ định; khác false.

DataSnapshot.hasChild()

Trả về việc DataSnapshot có thuộc tính con nào không phải null hay không.

Bạn có thể dùng hasChildren() để xác định xem DataSnapshot có phần tử con nào hay không. Nếu có, bạn có thể liệt kê chúng bằng cách sử dụng forEach(). Nếu không, thì tổng quan nhanh này sẽ chứa một giá trị gốc (có thể truy xuất được bằng val()) hoặc để trống (trong trường hợp này, val() sẽ trả về null).

Chữ ký:

hasChildren(): boolean;

Trường hợp trả lại hàng:

boolean

true nếu ảnh chụp nhanh này có bất kỳ phần tử con nào; else false.

DataSnapshot.toJSON()

Trả về một bản trình bày có thể chuyển đổi tuần tự JSON của đối tượng này.

Chữ ký:

toJSON(): object | null;

Trường hợp trả lại hàng:

đối tượng | rỗng

DataSnapshot.val()

Trích xuất giá trị JavaScript từ DataSnapshot.

Tuỳ thuộc vào dữ liệu trong DataSnapshot, phương thức val() có thể trả về một kiểu vô hướng (chuỗi, số hoặc boolean), mảng hoặc đối tượng. Mã này cũng có thể trả về giá trị rỗng, cho biết DataSnapshot trống (không chứa dữ liệu).

Chữ ký:

val(): any;

Trường hợp trả lại hàng:

bất kỳ

Nội dung của DataSnapshot dưới dạng giá trị JavaScript (Object, Array, string, number, boolean hoặc null).