From 69874cf06f94f723bd618e3a715877988e62df7a Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Thu, 7 May 2026 14:27:17 -0700 Subject: [PATCH 1/5] chore(firestore): improve typing for collection --- .../google/cloud/firestore_v1/collection.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py b/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py index 19b86ae6559a..6df6cc491d4c 100644 --- a/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py +++ b/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py @@ -33,6 +33,7 @@ if TYPE_CHECKING: # pragma: NO COVER import datetime + from google.cloud.firestore_v1.document import DocumentReference from google.cloud.firestore_v1.base_document import DocumentSnapshot from google.cloud.firestore_v1.query_profile import ExplainOptions from google.cloud.firestore_v1.stream_generator import StreamGenerator @@ -134,6 +135,23 @@ def add( write_result = document_ref.create(document_data, **kwargs) return write_result.update_time, document_ref + + def document(self, document_id: str | None = None) -> DocumentReference: + """Create a sub-document underneath the current collection. + + Args: + document_id (Optional[str]): The document identifier + within the current collection. If not provided, will default + to a random 20 character string composed of digits, + uppercase and lowercase and letters. + + Returns: + :class:`~google.cloud.firestore_v1.document.document.DocumentReference`: + The child document. + """ + doc = super(CollectionReference, self).document(document_id) + return cast("DocumentReference", doc) + def list_documents( self, page_size: Union[int, None] = None, From f7e09c9efe9af806f1837bfddb123094ad269fb6 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Thu, 7 May 2026 14:37:51 -0700 Subject: [PATCH 2/5] Update packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- .../google/cloud/firestore_v1/collection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py b/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py index 6df6cc491d4c..7fcc64627517 100644 --- a/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py +++ b/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py @@ -136,7 +136,7 @@ def add( return write_result.update_time, document_ref - def document(self, document_id: str | None = None) -> DocumentReference: + def document(self, document_id: Union[str, None] = None) -> "DocumentReference": """Create a sub-document underneath the current collection. Args: From 9677fd36715a7e9113250f55bc8960379ccd6d81 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Thu, 7 May 2026 14:38:31 -0700 Subject: [PATCH 3/5] Update packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- .../google/cloud/firestore_v1/collection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py b/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py index 7fcc64627517..5508d57fa172 100644 --- a/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py +++ b/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py @@ -146,7 +146,7 @@ def document(self, document_id: Union[str, None] = None) -> "DocumentReference": uppercase and lowercase and letters. Returns: - :class:`~google.cloud.firestore_v1.document.document.DocumentReference`: + :class:~google.cloud.firestore_v1.document.DocumentReference: The child document. """ doc = super(CollectionReference, self).document(document_id) From b3cd6da17f048bcc24d1e7e0e761290dacabea68 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Thu, 7 May 2026 14:38:38 -0700 Subject: [PATCH 4/5] Update packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- .../google/cloud/firestore_v1/collection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py b/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py index 5508d57fa172..ce27d33ca903 100644 --- a/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py +++ b/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py @@ -149,7 +149,7 @@ def document(self, document_id: Union[str, None] = None) -> "DocumentReference": :class:~google.cloud.firestore_v1.document.DocumentReference: The child document. """ - doc = super(CollectionReference, self).document(document_id) + doc = super().document(document_id) return cast("DocumentReference", doc) def list_documents( From d2dfbee9d509ffe4502954ff0a38119b82cd7ef0 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Thu, 7 May 2026 14:38:57 -0700 Subject: [PATCH 5/5] Add 'cast' to import statements in collection.py --- .../google/cloud/firestore_v1/collection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py b/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py index ce27d33ca903..757023a8ee41 100644 --- a/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py +++ b/packages/google-cloud-firestore/google/cloud/firestore_v1/collection.py @@ -16,7 +16,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, Callable, Generator, Optional, Tuple, Union +from typing import TYPE_CHECKING, Any, Callable, Generator, Optional, Tuple, Union, cast from google.api_core import gapic_v1 from google.api_core import retry as retries