表示 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;
参数
参数 | 类型 | 说明 |
---|---|---|
子路径 | 字符串 |
返回:
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: DataSnapshot) => boolean | void): boolean;
参数
参数 | 类型 | 说明 |
---|---|---|
操作 | (a:DataSnapshot)=>布尔值 |无效 | 为每个子级 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;
返回:
任意