Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Cloud Firestore ile verileri sipariş edin ve sınırlayın

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

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
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.
citiesRef.order(by: "name").limit(to: 3)
Amaç-C
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.
[[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
Query query = cities.orderBy("name").limit(3);
Query query = cities.orderBy("name").limitToLast(3);
Piton
cities_ref = db.collection("cities")
query = cities_ref.order_by("name").limit_to_last(2)
results = query.get()

Python

cities_ref = db.collection("cities")
query = cities_ref.order_by("name").limit_to_last(2)
results = await query.get()
C++
cities_ref.OrderBy("name").Limit(3);
Node.js
const firstThreeRes = await citiesRef.orderBy('name').limit(3).get();
Gitmek
query := cities.OrderBy("name", firestore.Asc).Limit(3)
query := cities.OrderBy("name", firestore.Asc).LimitToLast(3)
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.

$query = $citiesRef->orderBy('name')->limit(3);
Birlik
Query query = citiesRef.OrderBy("Name").Limit(3);
C#
Query query = citiesRef.OrderBy("Name").Limit(3);
Yakut
query = cities_ref.order("name").limit(3)

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
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.
citiesRef.order(by: "name", descending: true).limit(to: 3)
Amaç-C
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.
[[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
Query query = cities.orderBy("name", Direction.DESCENDING).limit(3);
Piton
cities_ref = db.collection(u'cities')
query = cities_ref.order_by(
    u'name', direction=firestore.Query.DESCENDING).limit(3)
results = query.stream()

Python

cities_ref = db.collection("cities")
query = cities_ref.order_by("name", direction=firestore.Query.DESCENDING).limit(3)
results = query.stream()
C++
cities_ref.OrderBy("name", Query::Direction::kDescending).Limit(3);
Node.js
const lastThreeRes = await citiesRef.orderBy('name', 'desc').limit(3).get();
Gitmek
query := cities.OrderBy("name", firestore.Desc).Limit(3)
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.

$query = $citiesRef->orderBy('name', 'DESC')->limit(3);
Birlik
Query query = citiesRef.OrderByDescending("Name").Limit(3);
C#
Query query = citiesRef.OrderByDescending("Name").Limit(3);
Yakut
query = cities_ref.order("name", "desc").limit(3)

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
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.
citiesRef
    .order(by: "state")
    .order(by: "population", descending: true)
Amaç-C
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.
[[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
Query query = cities.orderBy("state").orderBy("population", Direction.DESCENDING);
Piton
cities_ref = db.collection(u'cities')
cities_ref.order_by(u'state').order_by(
    u'population', direction=firestore.Query.DESCENDING)

Python

cities_ref = db.collection("cities")
cities_ref.order_by("state").order_by(
    "population", direction=firestore.Query.DESCENDING
)
C++
cities_ref.OrderBy("state").OrderBy("name", Query::Direction::kDescending);
Node.js
const byStateByPopRes = await citiesRef.orderBy('state').orderBy('population', 'desc').get();
Gitmek
query := client.Collection("cities").OrderBy("state", firestore.Asc).OrderBy("population", firestore.Desc)
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.

$query = $citiesRef->orderBy('state')->orderBy('population', 'DESC');
Birlik
Query query = citiesRef.OrderBy("State").OrderByDescending("Population");
C#
Query query = citiesRef.OrderBy("State").OrderByDescending("Population");
Yakut
query = cities_ref.order("state").order("population", "desc")

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
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.
citiesRef
    .whereField("population", isGreaterThan: 100000)
    .order(by: "population")
    .limit(to: 2)
Amaç-C
Not: Bu ürün, watchOS ve App Clip hedeflerinde mevcut değildir.
[[[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
Query query = cities.whereGreaterThan("population", 2500000L).orderBy("population").limit(2);
Piton
cities_ref = db.collection(u'cities')
query = cities_ref.where(
    u'population', u'>', 2500000).order_by(u'population').limit(2)
results = query.stream()

Python

cities_ref = db.collection("cities")
query = cities_ref.where("population", ">", 2500000).order_by("population").limit(2)
results = query.stream()
C++
cities_ref.WhereGreaterThan("population", FieldValue::Integer(100000))
    .OrderBy("population")
    .Limit(2);
Node.js
const biggestRes = await citiesRef.where('population', '>', 2500000)
  .orderBy('population').limit(2).get();
Gitmek
query := cities.Where("population", ">", 2500000).OrderBy("population", firestore.Desc).Limit(2)
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.

$query = $citiesRef
    ->where('population', '>', 2500000)
    ->orderBy('population')
    ->limit(2);
Birlik
Query query = citiesRef
    .WhereGreaterThan("Population", 2500000)
    .OrderBy("Population")
    .Limit(2);
C#
Query query = citiesRef
    .WhereGreaterThan("Population", 2500000)
    .OrderBy("Population")
    .Limit(2);
Yakut
query = cities_ref.where("population", ">", 2_500_000).order("population").limit(2)

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
    cities_ref = db.collection(u'cities')
    query = cities_ref.where(
        u'population', u'>', 2500000).order_by(u'population')
    results = query.stream()

    Python

    cities_ref = db.collection("cities")
    query = cities_ref.where("population", ">", 2500000).order_by("population")
    results = query.stream()
    Node.js
    citiesRef.where('population', '>', 2500000).orderBy('population');
    Gitmek
    query := cities.Where("population", ">", 2500000).OrderBy("population", firestore.Asc)
    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.

    $query = $citiesRef
        ->where('population', '>', 2500000)
        ->orderBy('population');
    Birlik
    Query query = citiesRef
        .WhereGreaterThan("Population", 2500000)
        .OrderBy("Population");
    C#
    Query query = citiesRef
        .WhereGreaterThan("Population", 2500000)
        .OrderBy("Population");
    Yakut
    query = cities_ref.where("population", ">", 2_500_000).order("population")

    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
    Query query = cities.whereGreaterThan("population", 2500000L).orderBy("country");
    Piton
    cities_ref = db.collection(u'cities')
    query = cities_ref.where(u'population', u'>', 2500000).order_by(u'country')
    results = query.stream()

    Python

    cities_ref = db.collection("cities")
    query = cities_ref.where("population", ">", 2500000).order_by("country")
    results = query.stream()
    C++
    // BAD EXAMPLE -- will crash the program:
    cities_ref.WhereGreaterThan("population", FieldValue::Integer(100000))
        .OrderBy("country");
    Node.js
    citiesRef.where('population', '>', 2500000).orderBy('country');
    Gitmek
    // Note: This is an invalid query. It violates the constraint that range
    // and order by are required to be on the same field.
    query := cities.Where("population", ">", 2500000).OrderBy("country", firestore.Asc)
    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.

    $invalidRangeQuery = $citiesRef
        ->where('population', '>', 2500000)
        ->orderBy('country');
    Birlik
    Query query = citiesRef
        .WhereGreaterThan("Population", 2500000)
        .OrderBy("Country");
    C#
    Query query = citiesRef
        .WhereGreaterThan("Population", 2500000)
        .OrderBy("Country");
    Yakut
    query = cities_ref.where("population", ">", 2_500_000).order("country")
  • Sorgunuzu eşitlik ( = ) veya yan tümcede in alan herhangi bir alana göre sıralayamazsınız.