WriteBatch

public class WriteBatch


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.

Summary

Nested types

public interface WriteBatch.Function

An interface for providing code to be executed within a WriteBatch context.

Public methods

@NonNull Task<Void>

Commits all of the writes in this write batch as a single atomic unit.

@NonNull WriteBatch

Deletes the document referred to by the provided DocumentReference.

@NonNull WriteBatch
set(@NonNull DocumentReference documentRef, @NonNull Object data)

Overwrites the document referred to by the provided DocumentReference.

@NonNull WriteBatch
set(
    @NonNull DocumentReference documentRef,
    @NonNull Object data,
    @NonNull SetOptions options
)

Writes to the document referred to by the provided DocumentReference.

@NonNull WriteBatch
update(
    @NonNull DocumentReference documentRef,
    @NonNull Map<StringObject> data
)

Updates fields in the document referred to by the provided DocumentReference.

@NonNull WriteBatch
update(
    @NonNull DocumentReference documentRef,
    @NonNull String field,
    @Nullable Object value,
    Object[] moreFieldsAndValues
)

Updates field in the document referred to by the provided DocumentReference.

@NonNull WriteBatch
update(
    @NonNull DocumentReference documentRef,
    @NonNull FieldPath fieldPath,
    @Nullable Object value,
    Object[] moreFieldsAndValues
)

Updates fields in the document referred to by the provided DocumentReference.

Public methods

commit

public @NonNull Task<Voidcommit()

Commits all of the writes in this write batch as a single atomic unit.

Returns
@NonNull Task<Void>

A Task that will be resolved when the write finishes.

delete

public @NonNull WriteBatch delete(@NonNull DocumentReference documentRef)

Deletes the document referred to by the provided DocumentReference.

Parameters
@NonNull DocumentReference documentRef

The DocumentReference to delete.

Returns
@NonNull WriteBatch

This WriteBatch instance. Used for chaining method calls.

set

public @NonNull WriteBatch set(@NonNull DocumentReference documentRef, @NonNull 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
@NonNull DocumentReference documentRef

The DocumentReference to overwrite.

@NonNull Object data

The data to write to the document (like a Map or a POJO containing the desired document contents).

Returns
@NonNull WriteBatch

This WriteBatch instance. Used for chaining method calls.

set

public @NonNull WriteBatch set(
    @NonNull DocumentReference documentRef,
    @NonNull Object data,
    @NonNull 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
@NonNull DocumentReference documentRef

The DocumentReference to overwrite.

@NonNull Object data

The data to write to the document (like a Map or a POJO containing the desired document contents).

@NonNull SetOptions options

An object to configure the set behavior.

Returns
@NonNull WriteBatch

This WriteBatch instance. Used for chaining method calls.

update

public @NonNull WriteBatch update(
    @NonNull DocumentReference documentRef,
    @NonNull Map<StringObject> data
)

Updates fields in the document referred to by the provided DocumentReference. If no document exists yet, the update will fail.

Parameters
@NonNull DocumentReference documentRef

The DocumentReference to update.

@NonNull Map<StringObject> data

A map of field / value pairs to update. Fields can contain dots to reference nested fields within the document.

Returns
@NonNull WriteBatch

This WriteBatch instance. Used for chaining method calls.

update

public @NonNull WriteBatch update(
    @NonNull DocumentReference documentRef,
    @NonNull String field,
    @Nullable 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
@NonNull DocumentReference documentRef

The DocumentReference to update.

@NonNull String field

The first field to update. Fields can contain dots to reference a nested field within the document.

@Nullable Object value

The first value

Object[] moreFieldsAndValues

Additional field/value pairs.

Returns
@NonNull WriteBatch

This WriteBatch instance. Used for chaining method calls.

update

public @NonNull WriteBatch update(
    @NonNull DocumentReference documentRef,
    @NonNull FieldPath fieldPath,
    @Nullable 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
@NonNull DocumentReference documentRef

The DocumentReference to update.

@NonNull FieldPath fieldPath

The first field to update.

@Nullable Object value

The first value

Object[] moreFieldsAndValues

Additional field/value pairs.

Returns
@NonNull WriteBatch

This WriteBatch instance. Used for chaining method calls.