Skip to content

Commit 5d2e0bb

Browse files
authored
fix(firestore): update query samples to use FieldFilter (GoogleCloudPlatform#10407)
* firestore: update query samples to use FieldFilter * also fix async snippets * lint
1 parent 06df19a commit 5d2e0bb

File tree

3 files changed

+96
-41
lines changed

3 files changed

+96
-41
lines changed

firestore/cloud-async-client/snippets.py

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import datetime
1515

1616
from google.cloud import firestore
17+
from google.cloud.firestore_v1.base_query import FieldFilter
1718

1819

1920
async def quickstart_new_instance():
@@ -233,7 +234,11 @@ async def get_simple_query():
233234
db = firestore.AsyncClient()
234235
# [START firestore_data_query_async]
235236
# Note: Use of CollectionRef stream() is prefered to get()
236-
docs = db.collection("cities").where("capital", "==", True).stream()
237+
docs = (
238+
db.collection("cities")
239+
.where(filter=FieldFilter("capital", "==", True))
240+
.stream()
241+
)
237242

238243
async for doc in docs:
239244
print(f"{doc.id} => {doc.to_dict()}")
@@ -245,7 +250,9 @@ async def array_contains_filter():
245250
# [START firestore_query_filter_array_contains_async]
246251
cities_ref = db.collection("cities")
247252

248-
query = cities_ref.where("regions", "array_contains", "west_coast")
253+
query = cities_ref.where(
254+
filter=FieldFilter("regions", "array_contains", "west_coast")
255+
)
249256
# [END firestore_query_filter_array_contains_async]
250257
docs = query.stream()
251258
async for doc in docs:
@@ -445,7 +452,7 @@ async def compound_query_example():
445452
cities_ref = db.collection("cities")
446453

447454
# Create a query against the collection
448-
query_ref = cities_ref.where("state", "==", "CA")
455+
query_ref = cities_ref.where(filter=FieldFilter("state", "==", "CA"))
449456
# [END firestore_query_filter_eq_string_async]
450457

451458
return query_ref
@@ -456,7 +463,7 @@ async def compound_query_simple():
456463
# [START firestore_query_filter_eq_boolean_async]
457464
cities_ref = db.collection("cities")
458465

459-
query = cities_ref.where("capital", "==", True)
466+
query = cities_ref.where(filter=FieldFilter("capital", "==", True))
460467
# [END firestore_query_filter_eq_boolean_async]
461468

462469
print(query)
@@ -467,9 +474,9 @@ async def compound_query_single_clause():
467474
# [START firestore_query_filter_single_examples_async]
468475
cities_ref = db.collection("cities")
469476

470-
cities_ref.where("state", "==", "CA")
471-
cities_ref.where("population", "<", 1000000)
472-
cities_ref.where("name", ">=", "San Francisco")
477+
cities_ref.where(filter=FieldFilter("state", "==", "CA"))
478+
cities_ref.where(filter=FieldFilter("population", "<", 1000000))
479+
cities_ref.where(filter=FieldFilter("name", ">=", "San Francisco"))
473480
# [END firestore_query_filter_single_examples_async]
474481

475482

@@ -478,10 +485,12 @@ async def compound_query_valid_multi_clause():
478485
# [START firestore_query_filter_compound_multi_eq_async]
479486
cities_ref = db.collection("cities")
480487

481-
denver_query = cities_ref.where("state", "==", "CO").where("name", "==", "Denver")
482-
large_us_cities_query = cities_ref.where("state", "==", "CA").where(
483-
"population", ">", 1000000
488+
denver_query = cities_ref.where(filter=FieldFilter("state", "==", "CO")).where(
489+
filter=FieldFilter("name", "==", "Denver")
484490
)
491+
large_us_cities_query = cities_ref.where(
492+
filter=FieldFilter("state", "==", "CA")
493+
).where(filter=FieldFilter("population", ">", 1000000))
485494
# [END firestore_query_filter_compound_multi_eq_async]
486495
print(denver_query)
487496
print(large_us_cities_query)
@@ -491,15 +500,19 @@ async def compound_query_valid_single_field():
491500
db = firestore.AsyncClient()
492501
# [START firestore_query_filter_range_valid_async]
493502
cities_ref = db.collection("cities")
494-
cities_ref.where("state", ">=", "CA").where("state", "<=", "IN")
503+
cities_ref.where(filter=FieldFilter("state", ">=", "CA")).where(
504+
filter=FieldFilter("state", "<=", "IN")
505+
)
495506
# [END firestore_query_filter_range_valid_async]
496507

497508

498509
async def compound_query_invalid_multi_field():
499510
db = firestore.AsyncClient()
500511
# [START firestore_query_filter_range_invalid_async]
501512
cities_ref = db.collection("cities")
502-
cities_ref.where("state", ">=", "CA").where("population", ">=", 1000000)
513+
cities_ref.where(filter=FieldFilter("state", ">=", "CA")).where(
514+
filter=FieldFilter("population", ">=", 1000000)
515+
)
503516
# [END firestore_query_filter_range_invalid_async]
504517

505518

@@ -534,7 +547,11 @@ async def order_where_limit():
534547
db = firestore.AsyncClient()
535548
# [START firestore_query_order_limit_field_valid_async]
536549
cities_ref = db.collection("cities")
537-
query = cities_ref.where("population", ">", 2500000).order_by("population").limit(2)
550+
query = (
551+
cities_ref.where(filter=FieldFilter("population", ">", 2500000))
552+
.order_by("population")
553+
.limit(2)
554+
)
538555
results = query.stream()
539556
# [END firestore_query_order_limit_field_valid_async]
540557
print([d async for d in results])
@@ -554,7 +571,9 @@ async def order_where_valid():
554571
db = firestore.AsyncClient()
555572
# [START firestore_query_order_with_filter_async]
556573
cities_ref = db.collection("cities")
557-
query = cities_ref.where("population", ">", 2500000).order_by("population")
574+
query = cities_ref.where(filter=FieldFilter("population", ">", 2500000)).order_by(
575+
"population"
576+
)
558577
results = query.stream()
559578
# [END firestore_query_order_with_filter_async]
560579
print([d async for d in results])
@@ -564,7 +583,9 @@ async def order_where_invalid():
564583
db = firestore.AsyncClient()
565584
# [START firestore_query_order_field_invalid_async]
566585
cities_ref = db.collection("cities")
567-
query = cities_ref.where("population", ">", 2500000).order_by("country")
586+
query = cities_ref.where(filter=FieldFilter("population", ">", 2500000)).order_by(
587+
"country"
588+
)
568589
results = query.stream()
569590
# [END firestore_query_order_field_invalid_async]
570591
print(results)
@@ -720,7 +741,9 @@ async def collection_group_query(db):
720741
# [END firestore_query_collection_group_dataset_async]
721742

722743
# [START firestore_query_collection_group_filter_eq_async]
723-
museums = db.collection_group("landmarks").where("type", "==", "museum")
744+
museums = db.collection_group("landmarks").where(
745+
filter=FieldFilter("type", "==", "museum")
746+
)
724747
docs = museums.stream()
725748
async for doc in docs:
726749
print(f"{doc.id} => {doc.to_dict()}")
@@ -733,7 +756,9 @@ async def array_contains_any_queries(db):
733756
cities_ref = db.collection("cities")
734757

735758
query = cities_ref.where(
736-
"regions", "array_contains_any", ["west_coast", "east_coast"]
759+
filter=FieldFilter(
760+
"regions", "array_contains_any", ["west_coast", "east_coast"]
761+
)
737762
)
738763
return query
739764
# [END firestore_query_filter_array_contains_any_async]
@@ -743,7 +768,7 @@ async def in_query_without_array(db):
743768
# [START firestore_query_filter_in_async]
744769
cities_ref = db.collection("cities")
745770

746-
query = cities_ref.where("country", "in", ["USA", "Japan"])
771+
query = cities_ref.where(filter=FieldFilter("country", "in", ["USA", "Japan"]))
747772
return query
748773
# [END firestore_query_filter_in_async]
749774

@@ -752,7 +777,9 @@ async def in_query_with_array(db):
752777
# [START firestore_query_filter_in_with_array_async]
753778
cities_ref = db.collection("cities")
754779

755-
query = cities_ref.where("regions", "in", [["west_coast"], ["east_coast"]])
780+
query = cities_ref.where(
781+
filter=FieldFilter("regions", "in", [["west_coast"], ["east_coast"]])
782+
)
756783
return query
757784
# [END firestore_query_filter_in_with_array_async]
758785

firestore/cloud-client/aggregate_query_count.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
# [START firestore_count_query]
2222
from google.cloud import firestore
2323
from google.cloud.firestore_v1 import aggregation
24+
from google.cloud.firestore_v1.base_query import FieldFilter
2425

2526

2627
def create_count_query(project_id: str) -> None:
@@ -32,7 +33,7 @@ def create_count_query(project_id: str) -> None:
3233
client = firestore.Client(project=project_id)
3334

3435
collection_ref = client.collection("users")
35-
query = collection_ref.where("born", ">", 1800)
36+
query = collection_ref.where(filter=FieldFilter("born", ">", 1800))
3637
aggregate_query = aggregation.AggregationQuery(query)
3738

3839
# `alias` to provides a key for accessing the aggregate query results

firestore/cloud-client/snippets.py

Lines changed: 48 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
from google.api_core.client_options import ClientOptions
2020
from google.cloud import firestore
21+
from google.cloud.firestore_v1.base_query import FieldFilter
2122

2223

2324
def quickstart_new_instance():
@@ -238,7 +239,11 @@ def get_simple_query():
238239
db = firestore.Client()
239240
# [START firestore_data_query]
240241
# Note: Use of CollectionRef stream() is prefered to get()
241-
docs = db.collection("cities").where("capital", "==", True).stream()
242+
docs = (
243+
db.collection("cities")
244+
.where(filter=FieldFilter("capital", "==", True))
245+
.stream()
246+
)
242247

243248
for doc in docs:
244249
print(f"{doc.id} => {doc.to_dict()}")
@@ -250,7 +255,9 @@ def array_contains_filter():
250255
# [START firestore_query_filter_array_contains]
251256
cities_ref = db.collection("cities")
252257

253-
query = cities_ref.where("regions", "array_contains", "west_coast")
258+
query = cities_ref.where(
259+
filter=FieldFilter("regions", "array_contains", "west_coast")
260+
)
254261
# [END firestore_query_filter_array_contains]
255262
docs = query.stream()
256263
for doc in docs:
@@ -451,7 +458,7 @@ def compound_query_example():
451458
cities_ref = db.collection("cities")
452459

453460
# Create a query against the collection
454-
query_ref = cities_ref.where("state", "==", "CA")
461+
query_ref = cities_ref.where(filter=FieldFilter("state", "==", "CA"))
455462
# [END firestore_query_filter_eq_string]
456463

457464
return query_ref
@@ -462,7 +469,7 @@ def compound_query_simple():
462469
# [START firestore_query_filter_eq_boolean]
463470
cities_ref = db.collection("cities")
464471

465-
query = cities_ref.where("capital", "==", True)
472+
query = cities_ref.where(filter=FieldFilter("capital", "==", True))
466473
# [END firestore_query_filter_eq_boolean]
467474

468475
print(query)
@@ -473,9 +480,9 @@ def compound_query_single_clause():
473480
# [START firestore_query_filter_single_examples]
474481
cities_ref = db.collection("cities")
475482

476-
cities_ref.where("state", "==", "CA")
477-
cities_ref.where("population", "<", 1000000)
478-
cities_ref.where("name", ">=", "San Francisco")
483+
cities_ref.where(filter=FieldFilter("state", "==", "CA"))
484+
cities_ref.where(filter=FieldFilter("population", "<", 1000000))
485+
cities_ref.where(filter=FieldFilter("name", ">=", "San Francisco"))
479486
# [END firestore_query_filter_single_examples]
480487

481488

@@ -484,10 +491,12 @@ def compound_query_valid_multi_clause():
484491
# [START firestore_query_filter_compound_multi_eq]
485492
cities_ref = db.collection("cities")
486493

487-
denver_query = cities_ref.where("state", "==", "CO").where("name", "==", "Denver")
488-
large_us_cities_query = cities_ref.where("state", "==", "CA").where(
489-
"population", ">", 1000000
494+
denver_query = cities_ref.where(filter=FieldFilter("state", "==", "CO")).where(
495+
filter=FieldFilter("name", "==", "Denver")
490496
)
497+
large_us_cities_query = cities_ref.where(
498+
filter=FieldFilter("state", "==", "CA")
499+
).where(filter=FieldFilter("population", ">", 1000000))
491500
# [END firestore_query_filter_compound_multi_eq]
492501
print(denver_query)
493502
print(large_us_cities_query)
@@ -497,15 +506,19 @@ def compound_query_valid_single_field():
497506
db = firestore.Client()
498507
# [START firestore_query_filter_range_valid]
499508
cities_ref = db.collection("cities")
500-
cities_ref.where("state", ">=", "CA").where("state", "<=", "IN")
509+
cities_ref.where(filter=FieldFilter("state", ">=", "CA")).where(
510+
filter=FieldFilter("state", "<=", "IN")
511+
)
501512
# [END firestore_query_filter_range_valid]
502513

503514

504515
def compound_query_invalid_multi_field():
505516
db = firestore.Client()
506517
# [START firestore_query_filter_range_invalid]
507518
cities_ref = db.collection("cities")
508-
cities_ref.where("state", ">=", "CA").where("population", ">=", 1000000)
519+
cities_ref.where(filter=FieldFilter("state", ">=", "CA")).where(
520+
filter=FieldFilter("population", ">=", 1000000)
521+
)
509522
# [END firestore_query_filter_range_invalid]
510523

511524

@@ -540,7 +553,11 @@ def order_where_limit():
540553
db = firestore.Client()
541554
# [START firestore_query_order_limit_field_valid]
542555
cities_ref = db.collection("cities")
543-
query = cities_ref.where("population", ">", 2500000).order_by("population").limit(2)
556+
query = (
557+
cities_ref.where(filter=FieldFilter("population", ">", 2500000))
558+
.order_by("population")
559+
.limit(2)
560+
)
544561
results = query.stream()
545562
# [END firestore_query_order_limit_field_valid]
546563
print(results)
@@ -560,7 +577,9 @@ def order_where_valid():
560577
db = firestore.Client()
561578
# [START firestore_query_order_with_filter]
562579
cities_ref = db.collection("cities")
563-
query = cities_ref.where("population", ">", 2500000).order_by("population")
580+
query = cities_ref.where(filter=FieldFilter("population", ">", 2500000)).order_by(
581+
"population"
582+
)
564583
results = query.stream()
565584
# [END firestore_query_order_with_filter]
566585
print(results)
@@ -570,7 +589,9 @@ def order_where_invalid():
570589
db = firestore.Client()
571590
# [START firestore_query_order_field_invalid]
572591
cities_ref = db.collection("cities")
573-
query = cities_ref.where("population", ">", 2500000).order_by("country")
592+
query = cities_ref.where(filter=FieldFilter("population", ">", 2500000)).order_by(
593+
"country"
594+
)
574595
results = query.stream()
575596
# [END firestore_query_order_field_invalid]
576597
print(results)
@@ -689,7 +710,7 @@ def on_snapshot(col_snapshot, changes, read_time):
689710
print(f"{doc.id}")
690711
callback_done.set()
691712

692-
col_query = db.collection("cities").where("state", "==", "CA")
713+
col_query = db.collection("cities").where(filter=FieldFilter("state", "==", "CA"))
693714

694715
# Watch the collection query
695716
query_watch = col_query.on_snapshot(on_snapshot)
@@ -729,7 +750,7 @@ def on_snapshot(col_snapshot, changes, read_time):
729750
print(f"Removed city: {change.document.id}")
730751
delete_done.set()
731752

732-
col_query = db.collection("cities").where("state", "==", "CA")
753+
col_query = db.collection("cities").where(filter=FieldFilter("state", "==", "CA"))
733754

734755
# Watch the collection query
735756
query_watch = col_query.on_snapshot(on_snapshot)
@@ -853,7 +874,9 @@ def collection_group_query(db):
853874
# [END firestore_query_collection_group_dataset]
854875

855876
# [START firestore_query_collection_group_filter_eq]
856-
museums = db.collection_group("landmarks").where("type", "==", "museum")
877+
museums = db.collection_group("landmarks").where(
878+
filter=FieldFilter("type", "==", "museum")
879+
)
857880
docs = museums.stream()
858881
for doc in docs:
859882
print(f"{doc.id} => {doc.to_dict()}")
@@ -866,7 +889,9 @@ def array_contains_any_queries(db):
866889
cities_ref = db.collection("cities")
867890

868891
query = cities_ref.where(
869-
"regions", "array_contains_any", ["west_coast", "east_coast"]
892+
filter=FieldFilter(
893+
"regions", "array_contains_any", ["west_coast", "east_coast"]
894+
)
870895
)
871896
return query
872897
# [END firestore_query_filter_array_contains_any]
@@ -876,7 +901,7 @@ def in_query_without_array(db):
876901
# [START firestore_query_filter_in]
877902
cities_ref = db.collection("cities")
878903

879-
query = cities_ref.where("country", "in", ["USA", "Japan"])
904+
query = cities_ref.where(filter=FieldFilter("country", "in", ["USA", "Japan"]))
880905
return query
881906
# [END firestore_query_filter_in]
882907

@@ -885,7 +910,9 @@ def in_query_with_array(db):
885910
# [START firestore_query_filter_in_with_array]
886911
cities_ref = db.collection("cities")
887912

888-
query = cities_ref.where("regions", "in", [["west_coast"], ["east_coast"]])
913+
query = cities_ref.where(
914+
filter=FieldFilter("regions", "in", [["west_coast"], ["east_coast"]])
915+
)
889916
return query
890917
# [END firestore_query_filter_in_with_array]
891918

0 commit comments

Comments
 (0)