Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1133,7 +1133,7 @@ def modify_write(self, write, *unused_args, **unused_kwargs) -> None:

def make_retry_timeout_kwargs(
retry: retries.Retry | retries.AsyncRetry | object | None, timeout: float | None
) -> dict:
) -> dict[str, Any]:
"""Helper fo API methods which take optional 'retry' / 'timeout' args."""
kwargs = {}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import datetime
import logging
from typing import AsyncGenerator, Iterable
from typing import TYPE_CHECKING, AsyncGenerator, Iterable

from google.api_core import gapic_v1
from google.api_core import retry_async as retries
Expand All @@ -33,10 +33,16 @@
)
from google.cloud.firestore_v1.types import write

if TYPE_CHECKING: # pragma: NO COVER
from google.cloud.firestore_v1.async_client import AsyncClient
else:
AsyncClient = None


logger = logging.getLogger(__name__)


class AsyncDocumentReference(BaseDocumentReference):
class AsyncDocumentReference(BaseDocumentReference[AsyncClient]):
"""A reference to a document in a Firestore database.

The document may already exist or can be created by this class.
Expand Down Expand Up @@ -317,6 +323,8 @@ async def delete(
"""
request, kwargs = self._prep_delete(option, retry, timeout)

if self._client is None:
raise ValueError("A deletion requires a `client`.")
commit_response = await self._client._firestore_api.commit(
request=request,
metadata=self._client._rpc_metadata,
Expand Down Expand Up @@ -374,6 +382,8 @@ async def get(
field_paths, transaction, retry, timeout, read_time
)

if self._client is None:
raise ValueError("A get requires a `client`.")
response_iter = await self._client._firestore_api.batch_get_documents(
request=request,
metadata=self._client._rpc_metadata,
Expand Down Expand Up @@ -433,6 +443,8 @@ async def collections(
"""
request, kwargs = self._prep_collections(page_size, retry, timeout, read_time)

if self._client is None:
raise ValueError("A collection reference requires a `client`.")
iterator = await self._client._firestore_api.list_collection_ids(
request=request,
metadata=self._client._rpc_metadata,
Expand Down
Loading
Loading