代表 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: IteratedDataSnapshot) => boolean | void): boolean;
參數
參數 | 類型 | 說明 |
---|---|---|
動作 | (a:IteratedDataSnapshot) =>布林值 |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;
傳回:
不限