A write batch, used to perform multiple writes as a single atomic unit.
A Batch object can be acquired by calling batch()
.
It provides methods for adding writes to the write batch. None of the writes will be
committed (or visible locally) until commit()
is called.
Unlike transactions, write batches are persisted offline and therefore are preferable when you don't need to condition your writes on read data.
Subclassing Note: Cloud Firestore classes are not meant to be subclassed except for use in test mocks. Subclassing is not supported in production code and new SDK releases may break code that does so.
Nested Class Summary
interface | WriteBatch.Function | An interface for providing code to be executed
within a WriteBatch context. |
Public Method Summary
Task<Void> |
commit()
Commits all of the writes in this write batch as a single atomic unit.
|
WriteBatch |
delete(DocumentReference
documentRef)
Deletes the document referred to by the provided
DocumentReference .
|
WriteBatch |
set(DocumentReference
documentRef, Object data)
Overwrites the document referred to by the provided
DocumentReference .
|
WriteBatch |
set(DocumentReference
documentRef, Object data,
SetOptions
options)
Writes to the document referred to by the provided
DocumentReference .
|
WriteBatch |
update(DocumentReference
documentRef, Map<String, Object>
data)
Updates fields in the document referred to by the provided
DocumentReference .
|
WriteBatch |
update(DocumentReference
documentRef, String field,
Object
value, Object...
moreFieldsAndValues)
Updates field in the document referred to by the provided
DocumentReference .
|
WriteBatch |
update(DocumentReference
documentRef, FieldPath
fieldPath, Object value,
Object...
moreFieldsAndValues)
Updates fields in the document referred to by the provided
DocumentReference .
|
Inherited Method Summary
Public Methods
public Task<Void> commit ()
Commits all of the writes in this write batch as a single atomic unit.
Returns
- A Task that will be resolved when the write finishes.
public WriteBatch delete (DocumentReference documentRef)
Deletes the document referred to by the provided DocumentReference
.
Parameters
documentRef | The DocumentReference to delete. |
---|
Returns
- This
WriteBatch
instance. Used for chaining method calls.
public WriteBatch set (DocumentReference documentRef, Object data)
Overwrites the document referred to by the provided DocumentReference
.
If the document does not yet exist, it will be created. If a document already exists,
it will be overwritten.
Parameters
documentRef | The DocumentReference to overwrite. |
---|---|
data | The data to write to the document (e.g. a Map or a POJO containing the desired document contents). |
Returns
- This
WriteBatch
instance. Used for chaining method calls.
public WriteBatch set (DocumentReference documentRef, Object data, SetOptions options)
Writes to the document referred to by the provided DocumentReference
.
If the document does not yet exist, it will be created. If you pass
SetOptions
, the provided data can be merged into an existing document.
Parameters
documentRef | The DocumentReference to overwrite. |
---|---|
data | The data to write to the document (e.g. a Map or a POJO containing the desired document contents). |
options | An object to configure the set behavior. |
Returns
- This
WriteBatch
instance. Used for chaining method calls.
public WriteBatch update (DocumentReference documentRef, Map<String, Object> data)
Updates fields in the document referred to by the provided
DocumentReference
. If no document exists yet, the update will fail.
Parameters
documentRef | The DocumentReference to update. |
---|---|
data | A map of field / value pairs to update. Fields can contain dots to reference nested fields within the document. |
Returns
- This
WriteBatch
instance. Used for chaining method calls.
public WriteBatch update (DocumentReference documentRef, String field, Object value, Object... moreFieldsAndValues)
Updates field in the document referred to by the provided
DocumentReference
. If no document exists yet, the update will fail.
Parameters
documentRef | The DocumentReference to update. |
---|---|
field | The first field to update. Fields can contain dots to reference a nested field within the document. |
value | The first value |
moreFieldsAndValues | Additional field/value pairs. |
Returns
- This
WriteBatch
instance. Used for chaining method calls.
public WriteBatch update (DocumentReference documentRef, FieldPath fieldPath, Object value, Object... moreFieldsAndValues)
Updates fields in the document referred to by the provided
DocumentReference
. If no document exists yet, the update will fail.
Parameters
documentRef | The DocumentReference to update. |
---|---|
fieldPath | The first field to update. |
value | The first value |
moreFieldsAndValues | Additional field/value pairs. |
Returns
- This
WriteBatch
instance. Used for chaining method calls.