Methods

commit() → Promise containing Array of WriteResult

Atomically commits all pending operations to the database and verifies all preconditions. Fails the entire write if any precondition is not met.

Example

let writeBatch = firestore.batch();
let documentRef = firestore.doc('col/doc');

writeBatch.set(documentRef, {foo: 'bar'});

writeBatch.commit().then(() => {
  console.log('Successfully executed batch.');
});
Returns

Promise containing Array of WriteResult 

A Promise that resolves when this batch completes.

create(documentRef, data) → WriteBatch

Create a document with the provided object values. This will fail the batch if a document exists at its location.

Example

let writeBatch = firestore.batch();
let documentRef = firestore.collection('col').doc();

writeBatch.create(documentRef, {foo: 'bar'});

writeBatch.commit().then(() => {
  console.log('Successfully executed batch.');
});

Parameters

Name Type Optional Description

documentRef

DocumentReference

 

A reference to the document to be created.

data

DocumentData

 

The object to serialize as the document.

Returns

WriteBatch 

This WriteBatch instance. Used for chaining method calls.

delete(documentRef[, precondition]) → WriteBatch

Deletes a document from the database.

Example

let writeBatch = firestore.batch();
let documentRef = firestore.doc('col/doc');

writeBatch.delete(documentRef);

writeBatch.commit().then(() => {
  console.log('Successfully executed batch.');
});

Parameters

Name Type Optional Description

documentRef

DocumentReference

 

A reference to the document to be deleted.

precondition

Precondition

Yes

A precondition to enforce for this delete.

Values in precondition have the following properties:

Name Type Optional Description

lastUpdateTime

Timestamp

Yes

If set, enforces that the document was last updated at lastUpdateTime. Fails the batch if the document doesn't exist or was last updated at a different time.

Returns

WriteBatch 

This WriteBatch instance. Used for chaining method calls.

set(documentRef, data[, options]) → WriteBatch

Write to the document referred to by the provided DocumentReference. If the document does not exist yet, it will be created. If you pass SetOptions., the provided data can be merged into the existing document.

Example

let writeBatch = firestore.batch();
let documentRef = firestore.doc('col/doc');

writeBatch.set(documentRef, {foo: 'bar'});

writeBatch.commit().then(() => {
  console.log('Successfully executed batch.');
});

Parameters

Name Type Optional Description

documentRef

DocumentReference

 

A reference to the document to be set.

data

DocumentData

 

The object to serialize as the document.

options

SetOptions

Yes

An object to configure the set behavior.

Values in options have the following properties:

Name Type Optional Description

merge

boolean

Yes

If true, set() merges the values specified in its data argument. Fields omitted from this set() call remain untouched.

mergeFields

Array of (string or FieldPath)

Yes

If provided, set() only replaces the specified field paths. Any field path that is not specified is ignored and remains untouched.

Returns

WriteBatch 

This WriteBatch instance. Used for chaining method calls.

update(documentRef, dataOrField, ...preconditionOrValues) → WriteBatch

Update fields of the document referred to by the provided DocumentReference. If the document doesn't yet exist, the update fails and the entire batch will be rejected.

The update() method accepts either an object with field paths encoded as keys and field values encoded as values, or a variable number of arguments that alternate between field paths and field values. Nested fields can be updated by providing dot-separated field path strings or by providing FieldPath objects.

A Precondition restricting this update can be specified as the last argument.

Example

let writeBatch = firestore.batch();
let documentRef = firestore.doc('col/doc');

writeBatch.update(documentRef, {foo: 'bar'});

writeBatch.commit().then(() => {
  console.log('Successfully executed batch.');
});

Parameters

Name Type Optional Description

documentRef

DocumentReference

 

A reference to the document to be updated.

dataOrField

(UpdateData, string, or FieldPath)

 

An object containing the fields and values with which to update the document or the path of the first field to update.

preconditionOrValues

(Precondition, any type, string, or FieldPath)

 

An alternating list of field paths and values to update or a Precondition to restrict this update.

Value can be repeated.

Returns

WriteBatch 

This WriteBatch instance. Used for chaining method calls.