Cloud Firestore, bir koleksiyondan hangi belgeleri almak istediğinizi belirtmek için güçlü sorgu işlevi sağlar. Bu sorgular, Get Data içinde açıklandığı gibi get()
veya addSnapshotListener()
ile de kullanılabilir.
Sipariş ve sınır verileri
Varsayılan olarak, bir sorgu, belge kimliğine göre artan sırada sorguyu karşılayan tüm belgeleri alır. orderBy()
kullanarak verileriniz için sıralama düzenini belirtebilir ve limit()
kullanarak alınan belge sayısını sınırlayabilirsiniz.
Örneğin, ilk 3 şehri alfabetik olarak şu şekilde sorgulayabilirsiniz:
Web version 9
import { query, orderBy, limit } from "firebase/firestore"; const q = query(citiesRef, orderBy("name"), limit(3));
Web version 8
citiesRef.orderBy("name").limit(3);
Süratli
citiesRef.order(by: "name").limit(to: 3)
Amaç-C
[[citiesRef queryOrderedByField:@"name"] queryLimitedTo:3];
Kotlin+KTX
citiesRef.orderBy("name").limit(3)
Java
citiesRef.orderBy("name").limit(3);
Dart
final citiesRef = db.collection("cities"); citiesRef.orderBy("name").limit(3);
java
Piton
Python
C++
cities_ref.OrderBy("name").Limit(3);
Node.js
Gitmek
PHP
PHP
Cloud Firestore istemcisi kurma ve oluşturma hakkında daha fazla bilgi için Cloud Firestore Client Libraries bölümüne bakın.
Birlik
Query query = citiesRef.OrderBy("Name").Limit(3);
C#
Yakut
Son 3 şehri almak için azalan düzende de sıralayabilirsiniz:
Web version 9
import { query, orderBy, limit } from "firebase/firestore"; const q = query(citiesRef, orderBy("name", "desc"), limit(3));
Web version 8
citiesRef.orderBy("name", "desc").limit(3);
Süratli
citiesRef.order(by: "name", descending: true).limit(to: 3)
Amaç-C
[[citiesRef queryOrderedByField:@"name" descending:YES] queryLimitedTo:3];
Kotlin+KTX
citiesRef.orderBy("name", Query.Direction.DESCENDING).limit(3)
Java
citiesRef.orderBy("name", Direction.DESCENDING).limit(3);
Dart
final citiesRef = db.collection("cities"); citiesRef.orderBy("name", descending: true).limit(3);
java
Piton
Python
C++
cities_ref.OrderBy("name", Query::Direction::kDescending).Limit(3);
Node.js
Gitmek
PHP
PHP
Cloud Firestore istemcisi kurma ve oluşturma hakkında daha fazla bilgi için Cloud Firestore Client Libraries bölümüne bakın.
Birlik
Query query = citiesRef.OrderByDescending("Name").Limit(3);
C#
Yakut
Ayrıca birden fazla alana göre sipariş verebilirsiniz. Örneğin, eyalete göre ve her eyalet içinde nüfusa göre azalan düzende sıralamak istiyorsanız:
Web version 9
import { query, orderBy } from "firebase/firestore"; const q = query(citiesRef, orderBy("state"), orderBy("population", "desc"));
Web version 8
citiesRef.orderBy("state").orderBy("population", "desc");
Süratli
citiesRef .order(by: "state") .order(by: "population", descending: true)
Amaç-C
[[citiesRef queryOrderedByField:@"state"] queryOrderedByField:@"population" descending:YES];
Kotlin+KTX
citiesRef.orderBy("state").orderBy("population", Query.Direction.DESCENDING)
Java
citiesRef.orderBy("state").orderBy("population", Direction.DESCENDING);
Dart
final citiesRef = db.collection("cities"); citiesRef.orderBy("state").orderBy("population", descending: true);
java
Piton
Python
C++
cities_ref.OrderBy("state").OrderBy("name", Query::Direction::kDescending);
Node.js
Gitmek
PHP
PHP
Cloud Firestore istemcisi kurma ve oluşturma hakkında daha fazla bilgi için Cloud Firestore Client Libraries bölümüne bakın.
Birlik
Query query = citiesRef.OrderBy("State").OrderByDescending("Population");
C#
Yakut
where()
filtrelerini orderBy()
ve limit()
ile birleştirebilirsiniz. Aşağıdaki örnekte, sorgular bir popülasyon eşiği tanımlar, popülasyona göre artan düzende sıralar ve yalnızca eşiği aşan ilk birkaç sonucu döndürür:
Web version 9
import { query, where, orderBy, limit } from "firebase/firestore"; const q = query(citiesRef, where("population", ">", 100000), orderBy("population"), limit(2));
Web version 8
citiesRef.where("population", ">", 100000).orderBy("population").limit(2);
Süratli
citiesRef .whereField("population", isGreaterThan: 100000) .order(by: "population") .limit(to: 2)
Amaç-C
[[[citiesRef queryWhereField:@"population" isGreaterThan:@100000] queryOrderedByField:@"population"] queryLimitedTo:2];
Kotlin+KTX
citiesRef.whereGreaterThan("population", 100000).orderBy("population").limit(2)
Java
citiesRef.whereGreaterThan("population", 100000).orderBy("population").limit(2);
Dart
final citiesRef = db.collection("cities"); citiesRef .where("population", isGreaterThan: 100000) .orderBy("population") .limit(2);
java
Piton
Python
C++
cities_ref.WhereGreaterThan("population", FieldValue::Integer(100000)) .OrderBy("population") .Limit(2);
Node.js
Gitmek
PHP
PHP
Cloud Firestore istemcisi kurma ve oluşturma hakkında daha fazla bilgi için Cloud Firestore Client Libraries bölümüne bakın.
Birlik
Query query = citiesRef .WhereGreaterThan("Population", 2500000) .OrderBy("Population") .Limit(2);
C#
Yakut
Ancak, aralık karşılaştırmalı ( <
, <=
, >
, >=
) bir filtreniz varsa, ilk sıralamanız aynı alanda olmalıdır, aşağıdaki orderBy()
sınırlamaları listesine bakın.
sınırlamalar
orderBy()
yan tümceleri için aşağıdaki kısıtlamalara dikkat edin:
- Bir
orderBy()
yan tümcesi ayrıca verilen alanların varlığını da filtreler. Sonuç kümesi, verilen alanları içermeyen belgeleri içermez. Aralık karşılaştırmalı (
<
,<=
,>
,>=
) bir filtre eklerseniz, ilk sıralamanız aynı alanda olmalıdır:Geçerli : Aralık filtresi ve aynı alanda
orderBy
Web version 9
import { query, where, orderBy } from "firebase/firestore"; const q = query(citiesRef, where("population", ">", 100000), orderBy("population"));
Web version 8
citiesRef.where("population", ">", 100000).orderBy("population");
Süratli
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.citiesRef .whereField("population", isGreaterThan: 100000) .order(by: "population")
Amaç-C
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.[[citiesRef queryWhereField:@"population" isGreaterThan:@100000] queryOrderedByField:@"population"];
Kotlin+KTX
citiesRef.whereGreaterThan("population", 100000).orderBy("population")
Java
citiesRef.whereGreaterThan("population", 100000).orderBy("population");
Dart
final citiesRef = db.collection("cities"); citiesRef.where("population", isGreaterThan: 100000).orderBy("population");
java
Query query = cities.whereGreaterThan("population", 2500000L).orderBy("population");
Piton
Python
Node.js
Gitmek
PHP
PHP
Cloud Firestore istemcisi kurma ve oluşturma hakkında daha fazla bilgi için Cloud Firestore Client Libraries bölümüne bakın.
Birlik
Query query = citiesRef .WhereGreaterThan("Population", 2500000) .OrderBy("Population");
C#
Yakut
Geçersiz : Aralık filtresi ve farklı alanlarda ilk
orderBy
Web version 9
import { query, where, orderBy } from "firebase/firestore"; const q = query(citiesRef, where("population", ">", 100000), orderBy("country"));
Web version 8
citiesRef.where("population", ">", 100000).orderBy("country");
Süratli
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.citiesRef .whereField("population", isGreaterThan: 100000) .order(by: "country")
Amaç-C
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.[[citiesRef queryWhereField:@"population" isGreaterThan:@100000] queryOrderedByField:@"country"];
Kotlin+KTX
citiesRef.whereGreaterThan("population", 100000).orderBy("country")
Java
citiesRef.whereGreaterThan("population", 100000).orderBy("country");
Dart
final citiesRef = db.collection("cities"); citiesRef.where("population", isGreaterThan: 100000).orderBy("country");
java
Piton
Python
C++
// BAD EXAMPLE -- will crash the program: cities_ref.WhereGreaterThan("population", FieldValue::Integer(100000)) .OrderBy("country");
Node.js
Gitmek
PHP
PHP
Cloud Firestore istemcisi kurma ve oluşturma hakkında daha fazla bilgi için Cloud Firestore Client Libraries bölümüne bakın.
Birlik
Query query = citiesRef .WhereGreaterThan("Population", 2500000) .OrderBy("Country");
C#
Yakut
- Sorgunuzu eşitlik (
=
) veya yan tümcedein
alan herhangi bir alana göre sıralayamazsınız.