寫入批次處理,用於將多個寫入作為單一原子單元執行。
可以透過呼叫writeBatch()來取得WriteBatch
對象。它提供了將寫入添加到寫入批次的方法。在呼叫WriteBatch.commit()之前,不會提交任何寫入(或在本地可見)。
簽名:
export declare class WriteBatch
方法
方法 | 修飾符 | 描述 |
---|---|---|
犯罪() | 將此寫入批次中的所有寫入作為單個原子單元提交。這些寫入的結果只會反映在傳回的 Promise 解析後發生的文檔讀取。如果客戶端離線,則寫入失敗。如果您希望在用戶端上線之前查看本機修改或緩衝區寫入,請使用完整的 Firestore SDK。 | |
刪除(文件參考) | 刪除所提供的DocumentReference引用的文檔。 | |
設定(文件參考,數據) | 寫入所提供的DocumentReference引用的文檔。如果該文件尚不存在,則會建立該文件。 | |
設定(文件參考、資料、選項) | 寫入所提供的DocumentReference引用的文檔。如果該文件尚不存在,則會建立該文件。如果您提供merge 或mergeFields ,則提供的資料可以合併到現有文件中。 | |
更新(文件參考,數據) | 更新所提供的DocumentReference引用的文檔中的字段。如果套用於不存在的文檔,更新將會失敗。 | |
更新(文件參考,字段,值,moreFieldsAndValues) | 更新此DocumentReference引用的文件中的字段。如果套用於不存在的文檔,更新將會失敗。可以透過提供點分隔的欄位路徑字串或提供FieldPath 物件來更新巢狀欄位。 |
WriteBatch.commit()
將此寫入批次中的所有寫入作為單個原子單元提交。
這些寫入的結果只會反映在傳回的 Promise 解析後發生的文檔讀取。如果客戶端離線,則寫入失敗。如果您希望在用戶端上線之前查看本機修改或緩衝區寫入,請使用完整的 Firestore SDK。
簽名:
commit(): Promise<void>;
返回:
承諾<無效>
一旦批次中的所有寫入都作為原子單元成功寫入後端, Promise
就會解決(請注意,當您離線時它不會解決)。
WriteBatch.delete()
刪除所提供的DocumentReference引用的文檔。
簽名:
delete<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>): WriteBatch;
參數
範圍 | 類型 | 描述 |
---|---|---|
文件參考 | 文件參考<應用程式模型類型,Db模型類型> | 要刪除的文件的引用。 |
返回:
此WriteBatch
實例。用於連結方法呼叫。
WriteBatch.set()
寫入所提供的DocumentReference引用的文檔。如果該文件尚不存在,則會建立該文件。
簽名:
set<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: WithFieldValue<AppModelType>): WriteBatch;
參數
範圍 | 類型 | 描述 |
---|---|---|
文件參考 | 文件參考<應用程式模型類型,Db模型類型> | 要設定的文檔的引用。 |
數據 | 帶字段值<應用程式模型類型> | 文檔的欄位和值的物件。 |
返回:
此WriteBatch
實例。用於連結方法呼叫。
WriteBatch.set()
寫入所提供的DocumentReference引用的文檔。如果該文件尚不存在,則會建立該文件。如果您提供merge
或mergeFields
,所提供的數據可以合併到現有文件中。
簽名:
set<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: PartialWithFieldValue<AppModelType>, options: SetOptions): WriteBatch;
參數
範圍 | 類型 | 描述 |
---|---|---|
文件參考 | 文件參考<應用程式模型類型,Db模型類型> | 要設定的文檔的引用。 |
數據 | 帶有字段值的部分<應用程式模型類型> | 文檔的欄位和值的物件。 |
選項 | 設定選項 | 用於配置設定行為的物件。 |
返回:
此WriteBatch
實例。用於連結方法呼叫。
例外情況
錯誤 - 如果提供的輸入不是有效的 Firestore 文件。
WriteBatch.update()
更新所提供的DocumentReference引用的文檔中的字段。如果套用於不存在的文檔,更新將會失敗。
簽名:
update<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: UpdateData<DbModelType>): WriteBatch;
參數
範圍 | 類型 | 描述 |
---|---|---|
文件參考 | 文件參考<應用程式模型類型,Db模型類型> | 對要更新的文檔的引用。 |
數據 | 更新數據<資料庫模型類型> | 包含用於更新文件的欄位和值的物件。欄位可以包含點來引用文件中的嵌套欄位。 |
返回:
此WriteBatch
實例。用於連結方法呼叫。
例外情況
錯誤 - 如果提供的輸入不是有效的 Firestore 資料。
WriteBatch.update()
更新此DocumentReference引用的文件中的字段。如果套用於不存在的文檔,更新將會失敗。
可以透過提供點分隔的欄位路徑字串或提供FieldPath
物件來更新巢狀欄位。
簽名:
update<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, field: string | FieldPath, value: unknown, ...moreFieldsAndValues: unknown[]): WriteBatch;
參數
範圍 | 類型 | 描述 |
---|---|---|
文件參考 | 文件參考<應用程式模型類型,Db模型類型> | 對要更新的文檔的引用。 |
場地 | 字串|字段路徑 | 要更新的第一個欄位。 |
價值 | 未知 | 第一個值。 |
更多欄位和值 | 未知[] | 附加鍵值對。 |
返回:
此WriteBatch
實例。用於連結方法呼叫。
例外情況
錯誤 - 如果提供的輸入不是有效的 Firestore 資料。