Class AsyncClient (2.17.0)

AsyncClient(project=None, credentials=None, database=None, client_info=<google.api_core.gapic_v1.client_info.ClientInfo object>, client_options=None)

Client for interacting with Google Cloud Firestore API.

Parameters

Name Description
project Optional[str]

The project which the client acts on behalf of. If not passed, falls back to the default inferred from the environment.

credentials Optional[google.auth.credentials.Credentials]

The OAuth2 Credentials to use for this client. If not passed, falls back to the default inferred from the environment.

database Optional[str]

The database name that the client targets. For now, DEFAULT_DATABASE (the default value) is the only valid database.

client_info Optional[google.api_core.gapic_v1.client_info.ClientInfo]

The client info used to send a user-agent string along with API requests. If None, then default info will be used. Generally, you only need to set this if you're developing your own library or partner tool.

client_options Union[dict, google.api_core.client_options.ClientOptions]

Client options used to set user options on the client. API Endpoint should be set through client_options.

Methods

batch

batch() -> google.cloud.firestore_v1.async_batch.AsyncWriteBatch

Get a batch instance from this client.

Returns
Type Description
AsyncWriteBatch A "write" batch to be used for accumulating document changes and sending the changes all at once.

collection

collection(
    *collection_path: str,
) -> google.cloud.firestore_v1.async_collection.AsyncCollectionReference

Get a reference to a collection.

For a top-level collection:

>>> client.collection('top')

For a sub-collection:

>>> client.collection('mydocs/doc/subcol')
>>> # is the same as
>>> client.collection('mydocs', 'doc', 'subcol')

Sub-collections can be nested deeper in a similar fashion.

Returns
Type Description
AsyncCollectionReference A reference to a collection in the Firestore database.

collection_group

collection_group(
    collection_id: str,
) -> google.cloud.firestore_v1.async_query.AsyncCollectionGroup

Creates and returns a new AsyncQuery that includes all documents in the database that are contained in a collection or subcollection with the given collection_id.

>>> query = client.collection_group('mygroup')
Parameter
Name Description
collection_id str

Every collection or subcollection with this ID as the last segment of its path will be included. Cannot contain a slash.

Returns
Type Description
AsyncCollectionGroup The created AsyncQuery.

collections

collections(
    retry: google.api_core.retry.retry_unary_async.AsyncRetry = _MethodDefault._DEFAULT_VALUE,
    timeout: typing.Optional[float] = None,
) -> typing.AsyncGenerator[
    google.cloud.firestore_v1.async_collection.AsyncCollectionReference, typing.Any
]

List top-level collections of the client's database.

Parameters
Name Description
retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried. Defaults to a system-specified policy.

timeout float

The timeout for this request. Defaults to a system-specified value.

Returns
Type Description
Sequence[AsyncCollectionReference] iterator of subcollections of the current document.

document

document(
    *document_path: str,
) -> google.cloud.firestore_v1.async_document.AsyncDocumentReference

Get a reference to a document in a collection.

For a top-level document:

>>> client.document('collek/shun')
>>> # is the same as
>>> client.document('collek', 'shun')

For a document in a sub-collection:

>>> client.document('mydocs/doc/subcol/child')
>>> # is the same as
>>> client.document('mydocs', 'doc', 'subcol', 'child')

Documents in sub-collections can be nested deeper in a similar fashion.

Returns
Type Description
AsyncDocumentReference A reference to a document in a collection.

get_all

get_all(
    references: typing.List[
        google.cloud.firestore_v1.async_document.AsyncDocumentReference
    ],
    field_paths: typing.Optional[typing.Iterable[str]] = None,
    transaction=None,
    retry: google.api_core.retry.retry_unary_async.AsyncRetry = _MethodDefault._DEFAULT_VALUE,
    timeout: typing.Optional[float] = None,
) -> typing.AsyncGenerator[
    google.cloud.firestore_v1.base_document.DocumentSnapshot, typing.Any
]

Retrieve a batch of documents.

If multiple references refer to the same document, the server will only return one result.

See xref_field_path for more information on field paths.

If a transaction is used and it already has write operations added, this method cannot be used (i.e. read-after-write is not allowed).

Parameters
Name Description
references List[.AsyncDocumentReference, ...]

Iterable of document references to be retrieved.

field_paths Optional[Iterable[str, ...]]

An iterable of field paths (.-delimited list of field names) to use as a projection of document fields in the returned results. If no value is provided, all fields will be returned.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried. Defaults to a system-specified policy.

timeout float :Yields: *.DocumentSnapshot* -- The next document snapshot that fulfills the query, or :data:None if the document does not exist.

The timeout for this request. Defaults to a system-specified value.

transaction Optional[AsyncTransaction]

An existing transaction that these references will be retrieved in.

recursive_delete

recursive_delete(
    reference: typing.Union[
        google.cloud.firestore_v1.async_collection.AsyncCollectionReference,
        google.cloud.firestore_v1.async_document.AsyncDocumentReference,
    ],
    *,
    bulk_writer: typing.Optional[BulkWriter] = None,
    chunk_size: typing.Optional[int] = 5000
)

Deletes documents and their subcollections, regardless of collection name.

Passing an AsyncCollectionReference leads to each document in the collection getting deleted, as well as all of their descendents.

Passing an AsyncDocumentReference deletes that one document and all of its descendents.

Parameter
Name Description
bulk_writer Optional[:class:@google.cloud.firestore_v1.bulk_writer.BulkWriter]

The BulkWriter used to delete all matching documents. Supply this if you want to override the default throttling behavior.

transaction

transaction(
    **kwargs,
) -> google.cloud.firestore_v1.async_transaction.AsyncTransaction

Get a transaction that uses this client.

See xref_AsyncTransaction for more information on transactions and the constructor arguments.

Parameter
Name Description
kwargs Dict[str, Any]

The keyword arguments (other than client) to pass along to the AsyncTransaction constructor.

Returns
Type Description
AsyncTransaction A transaction attached to this client.