database.DataSnapshot class

表示 Firebase Realtime Database 数据快照的界面。

签名

export declare class DataSnapshot implements database.DataSnapshot 

实现:database.DataSnapshot

构造函数

构造函数 修饰符 说明
(构造函数)(数据, 路径, 应用, 实例) 构造 DataSnapshot 类的新实例

属性

属性 修饰符 类型 说明
instance 字符串
key 字符串 |null DataSnapshot 位置的键(路径的最后部分)。数据库位置中的最后一个令牌被视为其键。例如,"ada"是 /users/ada/ 节点的键。访问任何 DataSnapshot 上的键都会返回生成该键的位置对应的键。但是,访问数据库根网址上的键会返回 null
参考 database.Reference 将 [Reference](/zh_cn/docs/reference/admin/node/admin.database.Reference) 返回到发生触发写入的数据库位置。拥有完整的读写权限。

方法

方法 修饰符 说明
child(childPath) 获取指定相对路径中位置的 DataSnapshot相对路径可以是简单的子名称(例如“ada”),也可以是以斜杠分隔的路径(例如“ada/name/first”)。
exists() 如果此 DataSnapshot 包含任何数据,则返回 true。它的效率略高于使用 snapshot.val() !== null。如果此 DataSnapshot 包含任何数据,则为 true;否则为 false
exportVal() DataSnapshot 的全部内容导出为 JavaScript 对象。DataSnapshot 的内容,采用 JavaScript 值的形式(对象、数组、字符串、数字、布尔值或 null)。
foreach(action) 枚举子项的 DataSnapshot由于 JavaScript 对象的工作方式,val() 返回的 JavaScript 对象中数据的排序不保证与服务器上的排序一致,也无法保证与 child_added 事件的顺序一致。这正是 forEach() 的用武之地。它可保证 DataSnapshot 的子项可按查询顺序进行迭代。如果未使用显式 orderBy*() 方法,系统会按照键顺序返回结果(除非使用了优先级,在这种情况下,结果会按优先级返回)。
getPriority() 获取此 DataSnapshot 中数据的优先级值。作为使用优先级的替代方案,应用可以按普通属性对集合进行排序。请参阅 [对数据进行排序和过滤](/docs/database/web/lists-of-data#sorting_and_filtering_data)。数据的优先级值。
hasChild(childPath) 如果指定的子路径包含(非 null)数据,则返回 true
hasChildren() 返回 DataSnapshot 是否具有任何非 null 子属性。您可以使用 hasChildren() 确定 DataSnapshot 是否有任何子属性。如果支持,您可以使用 forEach() 枚举它们。如果没有,则此快照包含原始值(可使用 val() 检索)或为空(在这种情况下,val() 返回 null)。如果此快照有任何子项,则为 true;其他 false
numChildren() 返回此 DataSnapshot 的子属性的数量。此DataSnapshot的子属性的数量。
toJSON() 返回此对象的可序列化 JSON 表示法。此对象的可序列化 JSON 表示法。
val() DataSnapshot 中提取 JavaScript 值。val() 方法可能会返回标量类型(字符串、数字或布尔值)、数组或对象,具体取决于 DataSnapshot 中的数据。它也可能会返回 null,这表示 DataSnapshot 为空(不包含任何数据)。快照的内容,采用 JavaScript 值的形式(对象、数组、字符串、数字、布尔值或 null)。

database.DataSnapshot.(构造函数)

构造 DataSnapshot 类的新实例

签名

constructor(data: any, path?: string, // path is undefined for the database root
    app?: App, instance?: string);

参数

参数 类型 说明
数据 任意
路径 字符串
应用 应用
实例 字符串

database.DataSnapshot.instance

签名

instance: string;

database.DataSnapshot.key

DataSnapshot 所在位置的键(路径的最后部分)。

数据库位置中的最后一个令牌被视为其密钥。例如,"ada"是 /users/ada/ 节点的键。访问任何 DataSnapshot 上的键都会返回生成该键的位置对应的键。但是,访问数据库根网址上的键会返回 null

签名

get key(): string | null;

database.DataSnapshot.ref

将 [Reference](/zh_cn/docs/reference/admin/node/admin.database.Reference) 返回到发生触发写入的数据库位置。拥有完整的读写权限。

签名

get ref(): database.Reference;

database.DataSnapshot.child()

获取指定相对路径中位置的 DataSnapshot

相对路径可以是简单的子名称(例如“ada”),也可以是以斜杠分隔的路径(例如“ada/name/first”)。

签名

child(childPath: string): DataSnapshot;

参数

参数 类型 说明
子路径 字符串

返回

DataSnapshot

database.DataSnapshot.exists()

如果此 DataSnapshot 包含任何数据,则返回 true。它的效率略高于使用 snapshot.val() !== null

如果此 DataSnapshot 包含任何数据,则为 true;否则为 false

签名

exists(): boolean;

返回

布尔值

database.DataSnapshot.exportVal()

DataSnapshot 的全部内容导出为 JavaScript 对象。

DataSnapshot 的内容,采用 JavaScript 值的形式(对象、数组、字符串、数字、布尔值或 null)。

签名

exportVal(): any;

返回

任意

database.DataSnapshot.forEach()

枚举子项的 DataSnapshot

由于 JavaScript 对象的工作方式,val() 返回的 JavaScript 对象中数据的排序不一定与服务器上的排序一致,也无法保证与 child_added 事件的顺序一致。这正是 forEach() 的用武之地。它可保证 DataSnapshot 的子项可按其查询顺序进行迭代。

如果未使用显式 orderBy*() 方法,则返回结果按键排序(除非使用了优先级,在这种情况下,结果将按优先级返回)。

签名

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

参数

参数 类型 说明
操作 (a:IteratedDataSnapshot)=>布尔值 |无效 为每个子级 DataSnapshot 调用的函数。回调可以返回 true 以取消进一步的枚举。如果因回调返回 true 而导致枚举取消,则为 true

返回

布尔值

database.DataSnapshot.getPriority()

获取此 DataSnapshot 中数据的优先级值。

作为使用优先级的替代方案,应用程序可以按普通属性对集合进行排序。请参阅 [对数据进行排序和过滤](/docs/database/web/lists-of-data#sorting_and_filtering_data)。

数据的优先级值。

签名

getPriority(): string | number | null;

返回

字符串 |数字 |null

database.DataSnapshot.hasChild()

如果指定的子路径包含(非 null)数据,则返回 true

签名

hasChild(childPath: string): boolean;

参数

参数 类型 说明
子路径 字符串

返回

布尔值

database.DataSnapshot.hasChildren()

返回 DataSnapshot 是否具有任何非 null 子属性。

您可以使用 hasChildren() 确定 DataSnapshot 是否有任何子项。如果支持,您可以使用 forEach() 枚举它们。如果没有,则表示此快照包含原始值(可通过 val() 检索)或为空(在这种情况下,val() 返回 null)。

如果此快照有任何子项,则为 true;其他 false

签名

hasChildren(): boolean;

返回

布尔值

database.DataSnapshot.numChildren()

返回此 DataSnapshot 的子属性的数量。

DataSnapshot 的子资源数量。

签名

numChildren(): number;

返回

数字

database.DataSnapshot.toJSON()

返回此对象的可序列化 JSON 表示法。

此对象的可序列化 JSON 表示法。

签名

toJSON(): Record<string, unknown>;

返回

记录<字符串,未知>

database.DataSnapshot.val()

DataSnapshot 中提取 JavaScript 值。

根据 DataSnapshot 中的数据,val() 方法可能会返回标量类型(字符串、数字或布尔值)、数组或对象。它也可能会返回 null,这表示 DataSnapshot 为空(不包含任何数据)。

快照的内容,采用 JavaScript 值的形式(对象、数组、字符串、数字、布尔值或 null)。

签名

val(): any;

返回

任意