Skip to main content

documents

Creates, updates, deletes, gets or lists a documents resource.

Overview

Namedocuments
TypeResource
Idgoogle.firestore.documents

Fields

NameDatatypeDescription
namestringThe resource name of the document, for example projects/{project_id}/databases/{database_id}/documents/{document_path}.
createTimestringOutput only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the read_time of a query.
fieldsobjectThe document's fields. The map keys represent field names. Field names matching the regular expression __.*__ are reserved. Reserved field names are forbidden except in certain documented contexts. The field names, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For map_value, the field path is represented by a dot-delimited (.) string of segments. Each segment is either a simple field name (defined below) or a quoted field name. For example, the structured field "foo" : { map_value: { "x&y" : { string_value: "hello" }}} would be represented by the field path foo.`x&y`. A simple field name contains only characters a to z, A to Z, 0 to 9, or _, and must not start with 0 to 9. For example, foo_bar_17. A quoted field name starts and ends with ` and may contain any character. Some characters, including `, must be escaped using a \. For example, `x&y` represents x&y and `bak\`tik` represents bak`tik.
updateTimestringOutput only. The time at which the document was last changed. This value is initially set to the create_time then increases monotonically with each change to the document. It can also be compared to values from other documents and the read_time of a query.

Methods

NameAccessible byRequired ParamsDescription
getSELECTdatabasesId, documentsId, documentsId1, projectsIdGets a single document.
listSELECTcollectionId, databasesId, documentsId, documentsId1, projectsIdLists documents.
list_documentsSELECTcollectionId, databasesId, projectsIdLists documents.
listenSELECTdatabasesId, projectsIdListens to changes. This method is only available via gRPC or WebChannel (not REST).
create_documentINSERTcollectionId, databasesId, documentsId, projectsIdCreates a new document.
deleteDELETEdatabasesId, documentsId, documentsId1, projectsIdDeletes a document.
patchUPDATEdatabasesId, documentsId, documentsId1, projectsIdUpdates or inserts a document.
batch_getEXECdatabasesId, projectsIdGets multiple documents. Documents returned by this method are not guaranteed to be returned in the same order that they were requested.
batch_writeEXECdatabasesId, projectsIdApplies a batch of write operations. The BatchWrite method does not apply the write operations atomically and can apply them out of order. Method does not allow more than one write per document. Each write succeeds or fails independently. See the BatchWriteResponse for the success status of each write. If you require an atomically applied set of writes, use Commit instead.
begin_transactionEXECdatabasesId, projectsIdStarts a new transaction.
commitEXECdatabasesId, projectsIdCommits a transaction, while optionally updating documents.
partition_queryEXECdatabasesId, documentsId, documentsId1, projectsIdPartitions a query by returning partition cursors that can be used to run the query in parallel. The returned partition cursors are split points that can be used by RunQuery as starting/end points for the query results.
rollbackEXECdatabasesId, projectsIdRolls back a transaction.
run_aggregation_queryEXECdatabasesId, documentsId, documentsId1, projectsIdRuns an aggregation query. Rather than producing Document results like Firestore.RunQuery, this API allows running an aggregation to produce a series of AggregationResult server-side. High-Level Example: -- Return the number of documents in table given a filter. SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
run_queryEXECdatabasesId, documentsId, documentsId1, projectsIdRuns a query.
writeEXECdatabasesId, projectsIdStreams batches of document updates and deletes, in order. This method is only available via gRPC or WebChannel (not REST).

SELECT examples

Listens to changes. This method is only available via gRPC or WebChannel (not REST).

SELECT
name,
createTime,
fields,
updateTime
FROM google.firestore.documents
WHERE databasesId = '{{ databasesId }}'
AND projectsId = '{{ projectsId }}';

INSERT example

Use the following StackQL query and manifest file to create a new documents resource.

/*+ create */
INSERT INTO google.firestore.documents (
collectionId,
databasesId,
documentsId,
projectsId,
name,
fields
)
SELECT
'{{ collectionId }}',
'{{ databasesId }}',
'{{ documentsId }}',
'{{ projectsId }}',
'{{ name }}',
'{{ fields }}'
;

UPDATE example

Updates a documents resource.

/*+ update */
UPDATE google.firestore.documents
SET
name = '{{ name }}',
fields = '{{ fields }}'
WHERE
databasesId = '{{ databasesId }}'
AND documentsId = '{{ documentsId }}'
AND documentsId1 = '{{ documentsId1 }}'
AND projectsId = '{{ projectsId }}';

DELETE example

Deletes the specified documents resource.

/*+ delete */
DELETE FROM google.firestore.documents
WHERE databasesId = '{{ databasesId }}'
AND documentsId = '{{ documentsId }}'
AND documentsId1 = '{{ documentsId1 }}'
AND projectsId = '{{ projectsId }}';