寫入批次,用來以單一不可分割單元的形式執行多項寫入作業。
呼叫 writeBatch() 可以取得 WriteBatch
物件。提供將寫入作業新增至寫入批次的方法。在呼叫 WriteBatch.commit() 之前,所有寫入作業都不會修訂 (或在本機顯示)。
簽名:
export declare class WriteBatch
方法
方法 | 修飾符 | 說明 |
---|---|---|
commit() | 將此寫入批次中的所有寫入作業提交為單一不可分割的單位。這些寫入結果只會反映在傳回承諾後發生的文件讀取作業中。如果用戶端處於離線狀態,寫入就會失敗。如想在用戶端上線前查看本機修改或緩衝區寫入作業,請使用完整 Firestore SDK。 | |
delete(documentRef) | 刪除所提供 DocumentReference 提及的文件。 | |
set(documentRef, 資料) | 寫入所提供 DocumentReference 提及的文件。如果文件不存在,系統會建立文件。 | |
set(documentRef, data, options) | 寫入所提供 DocumentReference 提及的文件。如果文件不存在,系統會建立文件。如果您提供 merge 或 mergeFields ,則提供的資料可以合併至現有文件。 |
|
update(documentRef, 資料) | 更新由提供的 DocumentReference 所參照的文件中的欄位。如果套用至不存在的文件,更新就會失敗。 | |
update(documentRef, field, value, moreFieldsAndValues) | 更新這個 DocumentReference 所參照的文件中的欄位。如果套用至不存在的文件,更新就會失敗。如要更新巢狀欄位,請提供以點分隔的欄位路徑字串或提供 FieldPath 物件。 |
WriteBatch.commit()
將這個寫入批次中的所有寫入作業提交為單一不可分割單位。
只有在傳回的承諾產品解析後,這些寫入結果才會反映在文件讀取作業中。如果用戶端處於離線狀態,寫入就會失敗。如想在用戶端上線前查看本機修改或緩衝區寫入作業,請使用完整 Firestore SDK。
簽名:
commit(): Promise<void>;
傳回:
承諾<void>
當批次中的所有寫入作業成功以原子單元的形式寫入後端後,Promise
就會解析完畢 (請注意,它在離線時不會解析)。
WriteBatch.delete()
刪除所提供 DocumentReference 提及的文件。
簽名:
delete<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>): WriteBatch;
參數
參數 | 類型 | 說明 |
---|---|---|
DocumentRef | DocumentReference<AppModelType、DundModelType> | 要刪除的文件參照。 |
傳回:
這個「WriteBatch
」執行個體。用於鏈結方法呼叫。
WriteBatch.set()
寫入所提供 DocumentReference 提及的文件。如果文件不存在,系統會建立文件。
簽名:
set<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: WithFieldValue<AppModelType>): WriteBatch;
參數
參數 | 類型 | 說明 |
---|---|---|
DocumentRef | DocumentReference<AppModelType、DundModelType> | 要設定文件的參照。 |
資料 | WithFieldValue<AppModelType> | 文件的欄位和值。 |
傳回:
這個「WriteBatch
」執行個體。用於鏈結方法呼叫。
WriteBatch.set()
寫入所提供 DocumentReference 提及的文件。如果文件不存在,系統會建立文件。如果您提供 merge
或 mergeFields
,所提供的資料可以合併為現有文件。
簽名:
set<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: PartialWithFieldValue<AppModelType>, options: SetOptions): WriteBatch;
參數
參數 | 類型 | 說明 |
---|---|---|
DocumentRef | DocumentReference<AppModelType、DundModelType> | 要設定文件的參照。 |
資料 | PartialWithFieldValue<AppModelType> | 文件的欄位和值。 |
選項 | 設定選項 | 用來設定設定行為的物件。 |
傳回:
這個「WriteBatch
」執行個體。用於鏈結方法呼叫。
例外狀況
錯誤 - 如果提供的輸入內容不是有效的 Firestore 文件,
WriteBatch.update()
更新由提供的 DocumentReference 所參照的文件中的欄位。如果套用至不存在的文件,更新就會失敗。
簽名:
update<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: UpdateData<DbModelType>): WriteBatch;
參數
參數 | 類型 | 說明 |
---|---|---|
DocumentRef | DocumentReference<AppModelType、DundModelType> | 要更新文件的參照。 |
資料 | UpdateData<DbModelType> | 物件,內容包含要更新文件的欄位和值。欄位可以包含半形句號,以參照文件中的巢狀欄位。 |
傳回:
這個「WriteBatch
」執行個體。用於鏈結方法呼叫。
例外狀況
錯誤 - 如果提供的輸入內容不是有效的 Firestore 資料,
WriteBatch.update()
更新這個 DocumentReference 所參照的文件中的欄位。如果套用至不存在的文件,更新就會失敗。
透過提供以點分隔的欄位路徑字串或提供 FieldPath
物件,即可更新巢狀欄位。
簽名:
update<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, field: string | FieldPath, value: unknown, ...moreFieldsAndValues: unknown[]): WriteBatch;
參數
參數 | 類型 | 說明 |
---|---|---|
DocumentRef | DocumentReference<AppModelType、DundModelType> | 要更新文件的參照。 |
欄位 | 字串 |FieldPath | 要更新的第一個欄位。 |
值 | 不明 | 第一個值。 |
moreFieldsAndValues | 不明 [] | 其他鍵/值組合。 |
傳回:
這個「WriteBatch
」執行個體。用於鏈結方法呼叫。
例外狀況
錯誤 - 如果提供的輸入內容不是有效的 Firestore 資料,