DataSnapshot
には、データベースのロケーションのデータが含まれています。
データベースからデータを読み取るたびに、データは DataSnapshot
として受け取ります。DataSnapshot
は、on()
または once()
でアタッチするイベント コールバックに渡されます。スナップショットの内容を JavaScript オブジェクトとして抽出するには、val()
メソッドを呼び出します。または、child()
を呼び出してスナップショットをトラバースすることもできます(子スナップショットに対して val()
を呼び出すことができます)。
DataSnapshot
は、データベースのロケーションに効率的に生成される不変のデータのコピーです。変更できず、変更されることはありません(データを変更する場合は、必ず Reference
の set()
メソッドを直接呼び出します)。
署名:
export declare class DataSnapshot
プロパティ
プロパティ | 修飾キー | タイプ | 説明 |
---|---|---|---|
key | 文字列 |null | この DataSnapshot のロケーションのキー(パスの最後の部分)。データベースのロケーションの最後のトークンがキーとみなされます。例: 「ada」/users/ada/ ノードのキーです。任意の DataSnapshot で鍵にアクセスすると、それを生成した場所の鍵が返されます。ただし、データベースのルート URL でキーにアクセスすると、null が返されます。 |
|
優先度 | 文字列 |数値 |null | この DataSnapshot 内のデータの優先度値を取得します。アプリケーションで優先度を使用する必要はありませんが、通常のプロパティでコレクションを並べ替えることができます(データの並べ替えとフィルタをご覧ください)。 |
|
参照 | DatabaseReference | この DataSnapshot の場所。 | |
size | 数値 | この DataSnapshot の子プロパティの数を返します。 |
メソッド
メソッド | 修飾キー | 説明 |
---|---|---|
子(パス) | 指定された相対パスのロケーションの別の DataSnapshot を取得します。DataSnapshot の child() メソッドに相対パスを渡すと、指定された相対パスのロケーションの別の DataSnapshot が返されます。相対パスには、単純な子名(「ada」など)か、より深いスラッシュで区切られたパス(「ada/name/first」など)を指定できます。子の場所にデータがない場合は、空の DataSnapshot (値が null の DataSnapshot )が返されます。 |
|
exists() | この DataSnapshot にデータが含まれている場合、true を返します。これは、snapshot.val() !== null を使用するよりも若干効率的です。 |
|
exportVal() | DataSnapshot のコンテンツ全体を JavaScript オブジェクトとしてエクスポートします。exportVal() メソッドは val() と似ていますが、優先度情報が含まれている点(利用可能な場合)で、データのバックアップに適しています。 |
|
forEach(アクション) | IteratedDataSnapshot 内の最上位の子を列挙します。JavaScript オブジェクトの動作の性質上、val() によって返される JavaScript オブジェクト内のデータの順序は、サーバー上の順序や onChildAdded() イベントの順序と一致する保証はありません。このような場合に役立つのが forEach() です。DataSnapshot の子がクエリ順に反復処理されることが保証されます。明示的な orderBy*() メソッドを使用しない場合、結果はキー順に返されます(優先度が使用されている場合、結果は優先度によって返されます)。 |
|
hasChild(path) | 指定された子パスに null 以外のデータがある場合、true を返します。 | |
hasChildren() | DataSnapshot に null 以外の子プロパティがあるかどうかを返します。hasChildren() を使用すると、DataSnapshot に子プロパティがあるかどうかを確認できます。存在する場合は、forEach() を使用して列挙できます。存在しない場合、このスナップショットにはプリミティブ値(val() で取得可能)が含まれているか、空(この場合、val() は null を返します)のいずれかになります。 |
|
toJSON() | このオブジェクトの JSON シリアル化可能な表現を返します。 | |
val() | DataSnapshot から JavaScript 値を抽出します。DataSnapshot のデータに応じて、val() メソッドはスカラー型(文字列、数値、ブール値)、配列、またはオブジェクトを返します。また、DataSnapshot が空(データが含まれない)であることを示す null が返されることもあります。 |
DataSnapshot.key
この DataSnapshot
の場所のキー(パスの最後の部分)。
データベースのロケーション内の最後のトークンがそのキーとみなされます。例: 「ada」/users/ada/ ノードのキーです。任意の DataSnapshot
で鍵にアクセスすると、それを生成した場所の鍵が返されます。ただし、データベースのルート URL のキーにアクセスすると、null
が返されます。
署名:
get key(): string | null;
データスナップショットの優先値
この DataSnapshot
内のデータの優先度値を取得します。
アプリケーションで優先度を使用する必要はありませんが、コレクションを通常のプロパティで並べ替えることができます(データの並べ替えとフィルタをご覧ください)。
署名:
get priority(): string | number | null;
DataSnapshot.ref
この DataSnapshot の場所。
署名:
readonly ref: DatabaseReference;
DataSnapshot.size
この DataSnapshot
の子プロパティの数を返します。
署名:
get size(): number;
DataSnapshot.child()
指定された相対パスにあるロケーションの別の DataSnapshot
を取得します。
DataSnapshot の child()
メソッドに相対パスを渡すと、指定された相対パスの場所の別の DataSnapshot
が返されます。相対パスには、単純な子名(「ada」など)か、より深いスラッシュで区切られたパス(「ada/name/first」など)を指定できます。子の場所にデータがない場合は、空の DataSnapshot
(値が null
の DataSnapshot
)が返されます。
署名:
child(path: string): DataSnapshot;
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
パス | 文字列 | 子データの場所への相対パス。 |
戻り値:
DataSnapshot.exists()
この DataSnapshot
にデータが含まれている場合、true を返します。これは、snapshot.val() !== null
を使用するよりも若干効率的です。
署名:
exists(): boolean;
戻り値:
ブール値
DataSnapshot.exportVal()
DataSnapshot のコンテンツ全体を JavaScript オブジェクトとしてエクスポートします。
exportVal()
メソッドは val()
に似ていますが、優先度情報(利用可能な場合)が含まれているため、データのバックアップに適しています。
署名:
exportVal(): any;
戻り値:
任意
JavaScript 値(オブジェクト、配列、文字列、数値、ブール値、null
)で表される DataSnapshot のコンテンツ。
DataSnapshot.forEach()
IteratedDataSnapshot
内の最上位の子を列挙します。
JavaScript オブジェクトの動作の性質上、val()
によって返される JavaScript オブジェクト内のデータの順序が、サーバー上の順序や onChildAdded()
イベントの順序と一致するとは限りません。このような場合に役立つのが forEach()
です。DataSnapshot
の子がクエリ順序で反復されることが保証されます。
明示的な orderBy*()
メソッドが使用されていない場合、結果はキー順に返されます(優先度が使用されている場合、結果は優先度によって返されます)。
署名:
forEach(action: (child: IteratedDataSnapshot) => boolean | void): boolean;
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
アクション | (子: IteratedDataSnapshot)=>ブール値 |無効 | 子 DataSnapshot ごとに呼び出される関数。このコールバックは true を返して、追加の列挙をキャンセルできます。 |
戻り値:
ブール値
コールバックが true を返したことで列挙がキャンセルされた場合は true。
DataSnapshot.hasChild()
指定された子パスに null 以外のデータがある場合、true を返します。
署名:
hasChild(path: string): boolean;
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
パス | 文字列 | 子の場所の相対パス。 |
戻り値:
ブール値
指定された子パスにデータが存在する場合は true
。else false
。
DataSnapshot.hasChildren()
DataSnapshot
に null
以外の子プロパティがあるかどうかを返します。
hasChildren()
を使用すると、DataSnapshot
に子があるかどうかを判断できます。存在する場合は、forEach()
を使用して列挙できます。存在しない場合、このスナップショットにはプリミティブ値(val()
で取得可能)が含まれているか、空です(この場合、val()
は null
を返します)。
署名:
hasChildren(): boolean;
戻り値:
ブール値
このスナップショットに子がある場合は trueそうでない場合は false です。
DataSnapshot.toJSON()
このオブジェクトの JSON シリアル化可能な表現を返します。
署名:
toJSON(): object | null;
戻り値:
オブジェクト |null
DataSnapshot.val()
DataSnapshot
から JavaScript 値を抽出します。
DataSnapshot
内のデータに応じて、val()
メソッドはスカラー型(文字列、数値、ブール値)、配列、またはオブジェクトを返します。また、DataSnapshot
が空(データが含まれない)であることを示す null が返されることもあります。
署名:
val(): any;
戻り値:
任意
JavaScript 値(オブジェクト、配列、文字列、数値、ブール値、null
)で表される DataSnapshot のコンテンツ。