WriteBatch class

批量写入,用于以单个原子单元的形式执行多次写入。

可通过调用 writeBatch() 获取 WriteBatch 对象。它提供了将写入添加到批量写入的方法。在调用 WriteBatch.commit() 之前,所有写入操作都不会提交(或在本地可见)。

签名

export declare class WriteBatch 

方法

方法 修饰符 说明
commit() 将此写入批次中的所有写入作为一个原子单元提交。这些写入的结果只会反映在返回的 promise 解析后发生的文档读取中。如果客户端处于离线状态,则写入将失败。如果您希望在客户端上线之前查看本地修改或缓冲区写入,请使用完整的 Firestore SDK。
delete(documentRef) 删除提供的 DocumentReference 引用的文档。
set(documentRef, data) 对提供的 DocumentReference 引用的文档执行写入操作。如果该文档尚不存在,系统将会创建该文档。
set(documentRef, data, options) 对提供的 DocumentReference 引用的文档执行写入操作。如果该文档尚不存在,系统将会创建该文档。如果您提供 mergemergeFields,则所提供的数据可以合并到现有文档中。
update(documentRef, data) 更新由提供的 DocumentReference 引用的文档中的字段。如果应用于不存在的文档,更新将失败。
update(documentRef, 字段, 值, moreFieldsAndValues) 更新此 DocumentReference 引用的文档中的字段。如果应用于不存在的文档,更新将失败。您可以通过提供以英文句点分隔的字段路径字符串或提供 FieldPath 对象来更新嵌套字段。

WriteBatch.commit()

将此写入批次中的所有写入作为单个原子单元提交。

这些写入的结果只会反映在返回的 promise 解析后发生的文档读取中。如果客户端处于离线状态,则写入将失败。如果您希望在客户端上线之前查看本地修改或缓冲区写入,请使用完整的 Firestore SDK。

签名

commit(): Promise<void>;

返回

承诺<void>

当批次中的所有写入操作以原子单元成功写入后端后,系统会解析 Promise(请注意,离线时无法解析此内容)。

WriteBatch.delete()

删除提供的 DocumentReference 引用的文档。

签名

delete<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>): WriteBatch;

参数

参数 类型 说明
参考 DocumentReference<AppModelType, DbModelType> 对要删除的文档的引用。

返回

WriteBatch

WriteBatch 实例。用于链接方法调用。

WriteBatch.set()

对提供的 DocumentReference 引用的文档执行写入操作。如果该文档尚不存在,系统将会创建该文档。

签名

set<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: WithFieldValue<AppModelType>): WriteBatch;

参数

参数 类型 说明
参考 DocumentReference<AppModelType, DbModelType> 对要设置的文档的引用。
数据 WithFieldValue<AppModelType> 文档中的字段和值的对象。

返回

WriteBatch

WriteBatch 实例。用于链接方法调用。

WriteBatch.set()

对提供的 DocumentReference 引用的文档执行写入操作。如果该文档尚不存在,系统将会创建该文档。如果您提供 mergemergeFields,则所提供的数据可以合并到现有文档中。

签名

set<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: PartialWithFieldValue<AppModelType>, options: SetOptions): WriteBatch;

参数

参数 类型 说明
参考 DocumentReference<AppModelType, DbModelType> 对要设置的文档的引用。
数据 PartialWithFieldValue<AppModelType> 文档中的字段和值的对象。
选项 SetOptions 用于配置 set 行为的对象。

返回

WriteBatch

WriteBatch 实例。用于链接方法调用。

异常

错误 - 如果提供的输入不是有效的 Firestore 文档。

WriteBatch.update()

更新由提供的 DocumentReference 引用的文档中的字段。如果应用于不存在的文档,更新将失败。

签名

update<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: UpdateData<DbModelType>): WriteBatch;

参数

参数 类型 说明
参考 DocumentReference<AppModelType, DbModelType> 对要更新的文档的引用。
数据 UpdateData<DbModelType> 一个对象,包含更新文档时使用的字段和值。字段可以包含点,以引用文档中的嵌套字段。

返回

WriteBatch

WriteBatch 实例。用于链接方法调用。

异常

错误 - 如果提供的输入不是有效的 Firestore 数据。

WriteBatch.update()

更新此 DocumentReference 引用的文档中的字段。如果应用于不存在的文档,更新将失败。

您可以通过提供以英文句点分隔的字段路径字符串或提供 FieldPath 对象来更新嵌套字段。

签名

update<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, field: string | FieldPath, value: unknown, ...moreFieldsAndValues: unknown[]): WriteBatch;

参数

参数 类型 说明
参考 DocumentReference<AppModelType, DbModelType> 对要更新的文档的引用。
字段 字符串 |FieldPath 要更新的第一个字段。
未知 第一个值。
更多字段和值 未知 [] 其他键值对。

返回

WriteBatch

WriteBatch 实例。用于链接方法调用。

异常

错误 - 如果提供的输入不是有效的 Firestore 数据。