database.DataSnapshot class

代表 Firebase 即時資料庫資料快照的介面。

簽名:

export declare class DataSnapshot implements database.DataSnapshot 

實作:database.DataSnapshot

建構函式

建構函式 修飾符 說明
(建構函式)(資料、路徑、應用程式、執行個體) 建構 DataSnapshot 類別的新例項

屬性

屬性 修飾符 類型 說明
執行個體 字串
key 字串 |空值 這個 DataSnapshot 位置的金鑰 (路徑的最後部分)。資料庫位置中的最後一個符記即為其金鑰。例如「ada」是 /users/ada/ 節點的鍵。在任何 DataSnapshot 上存取金鑰,會傳回產生該金鑰的位置的金鑰。不過,存取資料庫根網址上的金鑰會傳回 null
參考資料 database.Reference 將 [Reference](/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](/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) =>布林值 |void 系統會為每個子項 DataSnapshot 呼叫的函式。回呼可以傳回 true,以取消進一步的列舉。如果因為回呼傳回 true 而取消列舉已取消,則為 true

傳回:

布林值

database.DataSnapshot.getPriority()

取得此DataSnapshot中資料的優先順序值。

除了使用優先順序之外,應用程式也可以按照一般屬性排序集合。請參閱 [排序及篩選資料](/docs/database/web/lists-of-data#sorting_and_filtering_data)。

資料的優先順序值。

簽名:

getPriority(): string | number | 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;

傳回:

不限