FirestoreClient

FirestoreClient

The Cloud Firestore service.

This service exposes several types of comparable timestamps:

  • create_time - The time at which a document was created. Changes only when a document is deleted, then re-created. Increases in a strict monotonic fashion.
  • update_time - The time at which a document was last updated. Changes every time a document is modified. Does not change when a write results in no modifications. Increases in a strict monotonic fashion.
  • read_time - The time at which a particular state was observed. Used to denote a consistent snapshot of the database or the time at which a Document was observed to not exist.
  • commit_time - The time at which the writes in a transaction were committed. Any read with an equal or greater read_time is guaranteed to see the effects of the transaction.

Constructor

new FirestoreClient(optionsopt)

Construct an instance of FirestoreClient.

Parameters:
Name Type Attributes Description
options object <optional>

The configuration object. See the subsequent parameters for more details.

Properties
Name Type Attributes Description
credentials object <optional>

Credentials object.

Properties
Name Type Attributes Description
client_email string <optional>
private_key string <optional>
email string <optional>

Account email address. Required when using a .pem or .p12 keyFilename.

keyFilename string <optional>

Full path to the a .json, .pem, or .p12 key downloaded from the Google Developers Console. If you provide a path to a JSON file, the projectId option below is not necessary. NOTE: .pem and .p12 require you to specify options.email as well.

port number <optional>

The port on which to connect to the remote host.

projectId string <optional>

The project ID from the Google Developer's Console, e.g. 'grape-spaceship-123'. We will also check the environment variable GCLOUD_PROJECT for your project ID. If your app is running in an environment which supports Application Default Credentials, your project ID will be detected automatically.

promise function <optional>

Custom promise module to use instead of native Promises.

apiEndpoint string <optional>

The domain name of the API remote host.

Source:

Members

(static) apiEndpoint

The DNS address for this API service - same as servicePath(), exists for compatibility reasons.

Source:

(static) port

The port for this API service.

Source:

(static) scopes

The scopes needed to make gRPC calls for every method defined in this service.

Source:

(static) servicePath

The DNS address for this API service.

Source:

Methods

anyPathPath(project, database, document, anyPath) → {String}

Return a fully-qualified any_path resource name string.

Parameters:
Name Type Description
project String
database String
document String
anyPath String
Source:

batchGetDocuments(request, optionsopt) → {Stream}

Gets multiple documents.

Documents returned by this method are not guaranteed to be returned in the same order that they were requested.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
database string

The database name. In the format: projects/{project_id}/databases/{database_id}.

documents Array.<string>

The names of the documents to retrieve. In the format: projects/{project_id}/databases/{database_id}/documents/{document_path}. The request will fail if any of the document is not a child resource of the given database. Duplicate names will be elided.

mask Object <optional>

The fields to return. If not set, returns all fields.

If a document has a field that is not present in this mask, that field will not be returned in the response.

This object should have the same structure as DocumentMask

transaction Buffer <optional>

Reads documents in a transaction.

newTransaction Object <optional>

Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream.

This object should have the same structure as TransactionOptions

readTime Object <optional>

Reads documents as they were at the given time. This may not be older than 60 seconds.

This object should have the same structure as Timestamp

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const formattedDatabase = client.databaseRootPath('[PROJECT]', '[DATABASE]');
const documents = [];
const request = {
  database: formattedDatabase,
  documents: documents,
};
client.batchGetDocuments(request).on('data', response => {
  // doThingsWith(response)
});

beginTransaction(request, optionsopt, callbackopt) → {Promise}

Starts a new transaction.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
database string

The database name. In the format: projects/{project_id}/databases/{database_id}.

options Object <optional>

The options for the transaction. Defaults to a read-write transaction.

This object should have the same structure as TransactionOptions

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing BeginTransactionResponse.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const formattedDatabase = client.databaseRootPath('[PROJECT]', '[DATABASE]');
client.beginTransaction({database: formattedDatabase})
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

commit(request, optionsopt, callbackopt) → {Promise}

Commits a transaction, while optionally updating documents.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
database string

The database name. In the format: projects/{project_id}/databases/{database_id}.

writes Array.<Object>

The writes to apply.

Always executed atomically and in order.

This object should have the same structure as Write

transaction Buffer <optional>

If set, applies all writes in this transaction, and commits it.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing CommitResponse.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const formattedDatabase = client.databaseRootPath('[PROJECT]', '[DATABASE]');
const writes = [];
const request = {
  database: formattedDatabase,
  writes: writes,
};
client.commit(request)
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

createDocument(request, optionsopt, callbackopt) → {Promise}

Creates a new document.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

The parent resource. For example: projects/{project_id}/databases/{database_id}/documents or projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}

collectionId string

The collection ID, relative to parent, to list. For example: chatrooms.

documentId string

The client-assigned document ID to use for this document.

Optional. If not specified, an ID will be assigned by the service.

document Object

The document to create. name must not be set.

This object should have the same structure as Document

mask Object <optional>

The fields to return. If not set, returns all fields.

If the document has a field that is not present in this mask, that field will not be returned in the response.

This object should have the same structure as DocumentMask

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing Document.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const formattedParent = client.anyPathPath('[PROJECT]', '[DATABASE]', '[DOCUMENT]', '[ANY_PATH]');
const collectionId = '';
const documentId = '';
const document = {};
const request = {
  parent: formattedParent,
  collectionId: collectionId,
  documentId: documentId,
  document: document,
};
client.createDocument(request)
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

databaseRootPath(project, database) → {String}

Return a fully-qualified database_root resource name string.

Parameters:
Name Type Description
project String
database String
Source:

deleteDocument(request, optionsopt, callbackopt) → {Promise}

Deletes a document.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
name string

The resource name of the Document to delete. In the format: projects/{project_id}/databases/{database_id}/documents/{document_path}.

currentDocument Object <optional>

An optional precondition on the document. The request will fail if this is set and not met by the target document.

This object should have the same structure as Precondition

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const formattedName = client.anyPathPath('[PROJECT]', '[DATABASE]', '[DOCUMENT]', '[ANY_PATH]');
client.deleteDocument({name: formattedName}).catch(err => {
  console.error(err);
});

documentPathPath(project, database, documentPath) → {String}

Return a fully-qualified document_path resource name string.

Parameters:
Name Type Description
project String
database String
documentPath String
Source:

documentRootPath(project, database) → {String}

Return a fully-qualified document_root resource name string.

Parameters:
Name Type Description
project String
database String
Source:

getDocument(request, optionsopt, callbackopt) → {Promise}

Gets a single document.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
name string

The resource name of the Document to get. In the format: projects/{project_id}/databases/{database_id}/documents/{document_path}.

mask Object <optional>

The fields to return. If not set, returns all fields.

If the document has a field that is not present in this mask, that field will not be returned in the response.

This object should have the same structure as DocumentMask

transaction Buffer <optional>

Reads the document in a transaction.

readTime Object <optional>

Reads the version of the document at the given time. This may not be older than 60 seconds.

This object should have the same structure as Timestamp

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing Document.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const formattedName = client.anyPathPath('[PROJECT]', '[DATABASE]', '[DOCUMENT]', '[ANY_PATH]');
client.getDocument({name: formattedName})
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

getProjectId(callback)

Return the project ID used by this class.

Parameters:
Name Type Description
callback function

the callback to be called with the current project Id.

Source:

listCollectionIds(request, optionsopt, callbackopt) → {Promise}

Lists all the collection IDs underneath a document.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

The parent document. In the format: projects/{project_id}/databases/{database_id}/documents/{document_path}. For example: projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

pageSize number <optional>

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is Array of string.

When autoPaginate: false is specified through options, it contains the result in a single response. If the response indicates the next page exists, the third parameter is set to be used for the next request object. The fourth parameter keeps the raw response object of an object representing ListCollectionIdsResponse.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

// Iterate over all elements.
const formattedParent = client.anyPathPath('[PROJECT]', '[DATABASE]', '[DOCUMENT]', '[ANY_PATH]');

client.listCollectionIds({parent: formattedParent})
  .then(responses => {
    const resources = responses[0];
    for (const resource of resources) {
      // doThingsWith(resource)
    }
  })
  .catch(err => {
    console.error(err);
  });

// Or obtain the paged response.
const formattedParent = client.anyPathPath('[PROJECT]', '[DATABASE]', '[DOCUMENT]', '[ANY_PATH]');


const options = {autoPaginate: false};
const callback = responses => {
  // The actual resources in a response.
  const resources = responses[0];
  // The next request if the response shows that there are more responses.
  const nextRequest = responses[1];
  // The actual response object, if necessary.
  // const rawResponse = responses[2];
  for (const resource of resources) {
    // doThingsWith(resource);
  }
  if (nextRequest) {
    // Fetch the next page.
    return client.listCollectionIds(nextRequest, options).then(callback);
  }
}
client.listCollectionIds({parent: formattedParent}, options)
  .then(callback)
  .catch(err => {
    console.error(err);
  });

listCollectionIdsStream(request, optionsopt) → {Stream}

Equivalent to listCollectionIds, but returns a NodeJS Stream object.

This fetches the paged responses for listCollectionIds continuously and invokes the callback registered for 'data' event for each element in the responses.

The returned object has 'end' method when no more elements are required.

autoPaginate option will be ignored.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

The parent document. In the format: projects/{project_id}/databases/{database_id}/documents/{document_path}. For example: projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

pageSize number <optional>

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

Source:
See:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const formattedParent = client.anyPathPath('[PROJECT]', '[DATABASE]', '[DOCUMENT]', '[ANY_PATH]');
client.listCollectionIdsStream({parent: formattedParent})
  .on('data', element => {
    // doThingsWith(element)
  }).on('error', err => {
    console.log(err);
  });

listDocuments(request, optionsopt, callbackopt) → {Promise}

Lists documents.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

The parent resource name. In the format: projects/{project_id}/databases/{database_id}/documents or projects/{project_id}/databases/{database_id}/documents/{document_path}. For example: projects/my-project/databases/my-database/documents or projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

collectionId string

The collection ID, relative to parent, to list. For example: chatrooms or messages.

pageSize number <optional>

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

orderBy string <optional>

The order to sort results by. For example: priority desc, name.

mask Object <optional>

The fields to return. If not set, returns all fields.

If a document has a field that is not present in this mask, that field will not be returned in the response.

This object should have the same structure as DocumentMask

transaction Buffer <optional>

Reads documents in a transaction.

readTime Object <optional>

Reads documents as they were at the given time. This may not be older than 60 seconds.

This object should have the same structure as Timestamp

showMissing boolean <optional>

If the list should show missing documents. A missing document is a document that does not exist but has sub-documents. These documents will be returned with a key but will not have fields, Document.create_time, or Document.update_time set.

Requests with show_missing may not specify where or order_by.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is Array of Document.

When autoPaginate: false is specified through options, it contains the result in a single response. If the response indicates the next page exists, the third parameter is set to be used for the next request object. The fourth parameter keeps the raw response object of an object representing ListDocumentsResponse.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

// Iterate over all elements.
const formattedParent = client.anyPathPath('[PROJECT]', '[DATABASE]', '[DOCUMENT]', '[ANY_PATH]');
const collectionId = '';
const request = {
  parent: formattedParent,
  collectionId: collectionId,
};

client.listDocuments(request)
  .then(responses => {
    const resources = responses[0];
    for (const resource of resources) {
      // doThingsWith(resource)
    }
  })
  .catch(err => {
    console.error(err);
  });

// Or obtain the paged response.
const formattedParent = client.anyPathPath('[PROJECT]', '[DATABASE]', '[DOCUMENT]', '[ANY_PATH]');
const collectionId = '';
const request = {
  parent: formattedParent,
  collectionId: collectionId,
};


const options = {autoPaginate: false};
const callback = responses => {
  // The actual resources in a response.
  const resources = responses[0];
  // The next request if the response shows that there are more responses.
  const nextRequest = responses[1];
  // The actual response object, if necessary.
  // const rawResponse = responses[2];
  for (const resource of resources) {
    // doThingsWith(resource);
  }
  if (nextRequest) {
    // Fetch the next page.
    return client.listDocuments(nextRequest, options).then(callback);
  }
}
client.listDocuments(request, options)
  .then(callback)
  .catch(err => {
    console.error(err);
  });

listDocumentsStream(request, optionsopt) → {Stream}

Equivalent to listDocuments, but returns a NodeJS Stream object.

This fetches the paged responses for listDocuments continuously and invokes the callback registered for 'data' event for each element in the responses.

The returned object has 'end' method when no more elements are required.

autoPaginate option will be ignored.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

The parent resource name. In the format: projects/{project_id}/databases/{database_id}/documents or projects/{project_id}/databases/{database_id}/documents/{document_path}. For example: projects/my-project/databases/my-database/documents or projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

collectionId string

The collection ID, relative to parent, to list. For example: chatrooms or messages.

pageSize number <optional>

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

orderBy string <optional>

The order to sort results by. For example: priority desc, name.

mask Object <optional>

The fields to return. If not set, returns all fields.

If a document has a field that is not present in this mask, that field will not be returned in the response.

This object should have the same structure as DocumentMask

transaction Buffer <optional>

Reads documents in a transaction.

readTime Object <optional>

Reads documents as they were at the given time. This may not be older than 60 seconds.

This object should have the same structure as Timestamp

showMissing boolean <optional>

If the list should show missing documents. A missing document is a document that does not exist but has sub-documents. These documents will be returned with a key but will not have fields, Document.create_time, or Document.update_time set.

Requests with show_missing may not specify where or order_by.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

Source:
See:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const formattedParent = client.anyPathPath('[PROJECT]', '[DATABASE]', '[DOCUMENT]', '[ANY_PATH]');
const collectionId = '';
const request = {
  parent: formattedParent,
  collectionId: collectionId,
};
client.listDocumentsStream(request)
  .on('data', element => {
    // doThingsWith(element)
  }).on('error', err => {
    console.log(err);
  });

listen(optionsopt) → {Stream}

Listens to changes.

Parameters:
Name Type Attributes Description
options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const stream = client.listen().on('data', response => {
  // doThingsWith(response)
});
const formattedDatabase = client.databaseRootPath('[PROJECT]', '[DATABASE]');
const request = {
  database: formattedDatabase,
};
// Write request objects.
stream.write(request);

matchAnyPathFromAnyPathName(anyPathName) → {String}

Parse the anyPathName from a any_path resource.

Parameters:
Name Type Description
anyPathName String

A fully-qualified path representing a any_path resources.

Source:

matchDatabaseFromAnyPathName(anyPathName) → {String}

Parse the anyPathName from a any_path resource.

Parameters:
Name Type Description
anyPathName String

A fully-qualified path representing a any_path resources.

Source:

matchDatabaseFromDatabaseRootName(databaseRootName) → {String}

Parse the databaseRootName from a database_root resource.

Parameters:
Name Type Description
databaseRootName String

A fully-qualified path representing a database_root resources.

Source:

matchDatabaseFromDocumentPathName(documentPathName) → {String}

Parse the documentPathName from a document_path resource.

Parameters:
Name Type Description
documentPathName String

A fully-qualified path representing a document_path resources.

Source:

matchDatabaseFromDocumentRootName(documentRootName) → {String}

Parse the documentRootName from a document_root resource.

Parameters:
Name Type Description
documentRootName String

A fully-qualified path representing a document_root resources.

Source:

matchDocumentFromAnyPathName(anyPathName) → {String}

Parse the anyPathName from a any_path resource.

Parameters:
Name Type Description
anyPathName String

A fully-qualified path representing a any_path resources.

Source:

matchDocumentPathFromDocumentPathName(documentPathName) → {String}

Parse the documentPathName from a document_path resource.

Parameters:
Name Type Description
documentPathName String

A fully-qualified path representing a document_path resources.

Source:

matchProjectFromAnyPathName(anyPathName) → {String}

Parse the anyPathName from a any_path resource.

Parameters:
Name Type Description
anyPathName String

A fully-qualified path representing a any_path resources.

Source:

matchProjectFromDatabaseRootName(databaseRootName) → {String}

Parse the databaseRootName from a database_root resource.

Parameters:
Name Type Description
databaseRootName String

A fully-qualified path representing a database_root resources.

Source:

matchProjectFromDocumentPathName(documentPathName) → {String}

Parse the documentPathName from a document_path resource.

Parameters:
Name Type Description
documentPathName String

A fully-qualified path representing a document_path resources.

Source:

matchProjectFromDocumentRootName(documentRootName) → {String}

Parse the documentRootName from a document_root resource.

Parameters:
Name Type Description
documentRootName String

A fully-qualified path representing a document_root resources.

Source:

rollback(request, optionsopt, callbackopt) → {Promise}

Rolls back a transaction.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
database string

The database name. In the format: projects/{project_id}/databases/{database_id}.

transaction Buffer

The transaction to roll back.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const formattedDatabase = client.databaseRootPath('[PROJECT]', '[DATABASE]');
const transaction = Buffer.from('');
const request = {
  database: formattedDatabase,
  transaction: transaction,
};
client.rollback(request).catch(err => {
  console.error(err);
});

runQuery(request, optionsopt) → {Stream}

Runs a query.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

The parent resource name. In the format: projects/{project_id}/databases/{database_id}/documents or projects/{project_id}/databases/{database_id}/documents/{document_path}. For example: projects/my-project/databases/my-database/documents or projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

structuredQuery Object <optional>

A structured query.

This object should have the same structure as StructuredQuery

transaction Buffer <optional>

Reads documents in a transaction.

newTransaction Object <optional>

Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream.

This object should have the same structure as TransactionOptions

readTime Object <optional>

Reads documents as they were at the given time. This may not be older than 60 seconds.

This object should have the same structure as Timestamp

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const formattedParent = client.anyPathPath('[PROJECT]', '[DATABASE]', '[DOCUMENT]', '[ANY_PATH]');
client.runQuery({parent: formattedParent}).on('data', response => {
  // doThingsWith(response)
});

updateDocument(request, optionsopt, callbackopt) → {Promise}

Updates or inserts a document.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
document Object

The updated document. Creates the document if it does not already exist.

This object should have the same structure as Document

updateMask Object

The fields to update. None of the field paths in the mask may contain a reserved name.

If the document exists on the server and has fields not referenced in the mask, they are left unchanged. Fields referenced in the mask, but not present in the input document, are deleted from the document on the server.

This object should have the same structure as DocumentMask

mask Object <optional>

The fields to return. If not set, returns all fields.

If the document has a field that is not present in this mask, that field will not be returned in the response.

This object should have the same structure as DocumentMask

currentDocument Object <optional>

An optional precondition on the document. The request will fail if this is set and not met by the target document.

This object should have the same structure as Precondition

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing Document.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const document = {};
const updateMask = {};
const request = {
  document: document,
  updateMask: updateMask,
};
client.updateDocument(request)
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

write(optionsopt) → {Stream}

Streams batches of document updates and deletes, in order.

Parameters:
Name Type Attributes Description
options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

Source:
Example
const firestore = require('@google-cloud/firestore');

const client = new firestore.v1.FirestoreClient({
  // optional auth parameters.
});

const stream = client.write().on('data', response => {
  // doThingsWith(response)
});
const formattedDatabase = client.databaseRootPath('[PROJECT]', '[DATABASE]');
const request = {
  database: formattedDatabase,
};
// Write request objects.
stream.write(request);