批量写入,用于以单个原子单元的形式执行多次写入。
可通过调用 writeBatch() 获取 WriteBatch
对象。它提供了将写入添加到批量写入的方法。在调用 WriteBatch.commit() 之前,所有写入操作都不会提交(或在本地可见)。
签名:
export declare class WriteBatch
方法
方法 | 修饰符 | 说明 |
---|---|---|
commit() | 将此写入批次中的所有写入作为一个原子单元提交。这些写入的结果只会反映在返回的 promise 解析后发生的文档读取中。如果客户端处于离线状态,则写入将失败。如果您希望在客户端上线之前查看本地修改或缓冲区写入,请使用完整的 Firestore SDK。 | |
delete(documentRef) | 删除提供的 DocumentReference 引用的文档。 | |
set(documentRef, data) | 对提供的 DocumentReference 引用的文档执行写入操作。如果该文档尚不存在,系统将会创建该文档。 | |
set(documentRef, data, options) | 对提供的 DocumentReference 引用的文档执行写入操作。如果该文档尚不存在,系统将会创建该文档。如果您提供 merge 或 mergeFields ,则所提供的数据可以合并到现有文档中。 |
|
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.set()
对提供的 DocumentReference 引用的文档执行写入操作。如果该文档尚不存在,系统将会创建该文档。
签名:
set<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: WithFieldValue<AppModelType>): WriteBatch;
参数
参数 | 类型 | 说明 |
---|---|---|
参考 | DocumentReference<AppModelType, DbModelType> | 对要设置的文档的引用。 |
数据 | WithFieldValue<AppModelType> | 文档中的字段和值的对象。 |
返回:
此 WriteBatch
实例。用于链接方法调用。
WriteBatch.set()
对提供的 DocumentReference 引用的文档执行写入操作。如果该文档尚不存在,系统将会创建该文档。如果您提供 merge
或 mergeFields
,则所提供的数据可以合并到现有文档中。
签名:
set<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: PartialWithFieldValue<AppModelType>, options: SetOptions): WriteBatch;
参数
参数 | 类型 | 说明 |
---|---|---|
参考 | DocumentReference<AppModelType, DbModelType> | 对要设置的文档的引用。 |
数据 | PartialWithFieldValue<AppModelType> | 文档中的字段和值的对象。 |
选项 | SetOptions | 用于配置 set 行为的对象。 |
返回:
此 WriteBatch
实例。用于链接方法调用。
异常
错误 - 如果提供的输入不是有效的 Firestore 文档。
WriteBatch.update()
更新由提供的 DocumentReference 引用的文档中的字段。如果应用于不存在的文档,更新将失败。
签名:
update<AppModelType, DbModelType extends DocumentData>(documentRef: DocumentReference<AppModelType, DbModelType>, data: UpdateData<DbModelType>): WriteBatch;
参数
参数 | 类型 | 说明 |
---|---|---|
参考 | DocumentReference<AppModelType, DbModelType> | 对要更新的文档的引用。 |
数据 | 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;
参数
参数 | 类型 | 说明 |
---|---|---|
参考 | DocumentReference<AppModelType, DbModelType> | 对要更新的文档的引用。 |
字段 | 字符串 |FieldPath | 要更新的第一个字段。 |
值 | 未知 | 第一个值。 |
更多字段和值 | 未知 [] | 其他键值对。 |
返回:
此 WriteBatch
实例。用于链接方法调用。
异常
错误 - 如果提供的输入不是有效的 Firestore 数据。