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