Kullanım ve sınırlar

Cloud Firestore sınırlarını anlamak için bu kılavuzu kullanın. Ayrıca, dikkat edilmesi gereken hususlar da dahil olmak üzere Cloud Firestore ücretlerinin eksiksiz ve ayrıntılı bir açıklaması için Cloud Firestore Fiyatlandırması sayfasına göz atabilirsiniz.

Kullanımınızı izleyin

Cloud Firestore kullanımınızı takip etmek için Firebase konsolundaki Cloud Firestore Kullanım sekmesini açın. Farklı dönemlerdeki kullanımınızı ölçmek için kontrol panelini kullanın.

Google Cloud Console'daki ayrıntılı kullanım

Bir Firebase projesi oluşturduğunuzda Google Cloud projesi de oluşturmuş olursunuz. Google Cloud Console'daki Cloud Firestore API Kotaları ve App Engine Kotaları sayfalarında, Cloud Firestore kullanımı ve kota bilgileri takip edilir.

Ücretsiz kota

Cloud Firestore, (default) veritabanınızı ücretsiz olarak kullanmaya başlayabilmeniz için ücretsiz kota sunar. Ücretsiz kota miktarları aşağıda listelenmiştir. Daha fazla kotaya ihtiyacınız varsa Google Cloud projeniz için faturalandırmayı etkinleştirmeniz gerekir.

Kotalar günlük olarak uygulanır ve Pasifik saatine göre gece yarısı civarında sıfırlanır.

Yalnızca (default) veritabanı ücretsiz kotadan yararlanabilir.

Ücretsiz katman Kota
Depolanan veriler 1 GiB
Belge okuma sayısı Günde 50.000
Belge yazma sayısı Günde 20.000
Belge silme sayısı Günde 20.000
Giden veri aktarımı Ayda 10 GiB

Aşağıdaki işlemler ve özellikler ücretsiz kullanımı içermez. Şu özellikleri kullanmak için faturalandırmayı etkinleştirmeniz gerekir:

  • Adlandırılmış (varsayılan olmayan) veritabanlarının kullanımı
  • TTL silme sayısı
  • PITR verileri
  • Yedekleme verileri
  • Geri yükleme işlemleri

Bu özelliklerin nasıl faturalandırıldığı hakkında daha fazla bilgi için Depolama alanı fiyatlandırması bölümünü inceleyin.

Standart sınırlar

Aşağıdaki tablolar, Cloud Firestore için geçerli olan sınırları göstermektedir. Aksi belirtilmediği sürece bunlar kesin sınırlardır.

Veritabanları

Sınır Ayrıntılar
Proje başına maksimum veritabanı sayısı

100

Bu sınırın artırılmasını istemek için destek ekibiyle iletişime geçebilirsiniz.

Koleksiyonlar, belgeler ve alanlar

Sınır Ayrıntılar
Koleksiyon kimliklerindeki kısıtlamalar
  • Geçerli UTF-8 karakterleri kullanılmalıdır
  • 1.500 baytı aşmamalıdır
  • Eğik çizgi (/) içermemelidir
  • Yalnızca tek bir nokta (.) veya iki noktadan (..) oluşmamalıdır
  • __.*__ normal ifadesiyle eşleşmemelidir
Alt koleksiyonların maksimum derinliği 100
Belge kimlikleri üzerindeki kısıtlamalar
  • Geçerli UTF-8 karakterleri kullanılmalıdır
  • 1.500 baytı aşmamalıdır
  • Eğik çizgi (/) içermemelidir
  • Yalnızca tek bir nokta (.) veya iki noktadan (..) oluşmamalıdır
  • __.*__ normal ifadesiyle eşleşmemelidir
  • Datastore varlıklarını bir Firestore veritabanına aktarırsanız sayısal varlık kimlikleri __id[0-9]+__ olarak gösterilir
Belge adının maksimum boyutu 6 KiB
Belgenin maksimum boyutu 1 MiB (1.048.576 bayt)
Alan adlarındaki kısıtlamalar Geçerli UTF-8 karakterleri kullanılmalıdır
Alan adının maksimum boyutu 1.500 bayt
Alan yollarındaki kısıtlamalar
  • Alan adları tek bir nokta (.) ile ayrılmalıdır
  • Her segmentin basit bir alan adı veya tırnak içine alınmış alan adı (aşağıda tanımlanmaktadır) olduğu segmentlerden oluşan noktayla ayrılmış (.) bir dize olarak iletilebilir.
Aşağıdaki tüm şartların geçerli olduğu alan adları basit olarak sayılır:
  • Yalnızca a-z, A-Z, 0-9 ve alt çizgi (_) karakterlerini içerir
  • 0-9 ile başlamaz
Tırnak içine alınmış alan adı, vurgu işareti karakteriyle (`) başlar ve biter. Örneğin, foo.`x&y`, foo alanının altında iç içe yerleştirilmiş x&y alanını ifade eder. Alan adı oluşturmak için ters eğik çizgi karakteriyle (\) aksan işareti karakterinden çıkış yapın. Kolaylık sağlaması açısından, alan yolunu FieldPath nesnesi olarak geçirerek tırnak içine alınmış alan adlarından kaçınabilirsiniz (örneğin, JavaScript FieldPath).
Alan yolunun maksimum boyutu 1.500 bayt
Alan değerinin maksimum boyutu 1 MiB - 89 bayt (1.048.487 bayt)
Harita veya dizideki maksimum alan derinliği

20

Harita ve dizi alanları, bir nesnenin toplam derinliğine bir seviye ekler. Örneğin, aşağıdaki nesnenin toplam derinliği üç düzeydedir:


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

Yazmalar ve işlemler

Bu sınırlara ek olarak ölçeğe uygun tasarıma yönelik en iyi uygulamaları da incelemeniz gerekir.

Sınır Ayrıntılar
Maksimum API isteği boyutu 10 MiB
İşlem için zaman sınırı 60 saniyelik boşta kalma sona erme süresiyle birlikte 270 saniye

Dizinler

Aşağıdaki sınırlar tek alanlı dizinler ve birleşik dizinler için geçerlidir:

Sınır Ayrıntılar
Bir veritabanı için maksimum birleşik dizin sayısı
Bir veritabanı için maksimum tek alanlı yapılandırma sayısı

Bir alan düzeyinde yapılandırma, aynı alan için birden fazla yapılandırma içerebilir. Örneğin, tek bir alanda dizine ekleme muafiyeti ve aynı alandaki bir TTL politikası, sınıra dahil edilen tek bir alan yapılandırması olarak sayılır.

Her belge için maksimum dizin girişi sayısı

40.000

Belgelerde dizin girişlerinin sayısı, aşağıdakilerin toplamına eşittir:

  • Tek alanlı dizin girişlerinin sayısı
  • Birleşik dizin girişlerinin sayısı

Cloud Firestore'un bir belgeyi ve dizin grubunu nasıl dizin girişine dönüştürdüğünü görmek için dizin girişi sayısıyla ilgili bu örneğe göz atın.

Bileşik dizindeki maksimum alan sayısı 100
Dizin girişinin maksimum boyutu

7,5 KiB

Cloud Firestore'un dizin girişi boyutunu nasıl hesapladığını öğrenmek için dizin girişi boyutu bölümünü inceleyin.

Bir belgenin dizin girişlerinin maksimum toplam boyutu

8 MiB

Belgelerdeki toplam boyut, aşağıdakilerin toplamına eşittir:

  • Bir belgenin tek alanlı dizin girişlerinin toplam boyutu
  • Bir belgenin bileşik dizin girişlerinin toplam boyutu
  • Dizine eklenen alan değerinin maksimum boyutu

    1.500 bayt

    Boyutu 1.500 baytı aşan alan değerleri kısaltılır. Kısaltılmış alan değerleri içeren sorgular tutarsız sonuçlar verebilir.

    Geçerlilik süresi (TTL)

    Sınır Ayrıntılar
    Bir veritabanı için maksimum tek alanlı yapılandırma sayısı

    Bir alan düzeyinde yapılandırma, aynı alan için birden fazla yapılandırma içerebilir. Örneğin, tek bir alanda dizine ekleme muafiyeti ve aynı alandaki bir TTL politikası, sınıra dahil edilen tek bir alan yapılandırması olarak sayılır.

    İçe/Dışa Aktarma

    Aşağıdaki sınırlar, yönetilen içe ve dışa aktarma işlemleri için geçerlidir:

    Sınır Ayrıntılar
    Bir proje için izin verilen dakika başına dışa ve içe aktarma isteklerinin maksimum toplam sayısı 20
    Eşzamanlı dışa ve içe aktarma işlemlerinin maksimum sayısı 50
    Dışa ve içe aktarma işlemleri için maksimum koleksiyon kimliği filtresi sayısı 100

    Güvenlik kuralları

    Sınır Ayrıntılar
    İstek başına maksimum exists(), get() ve getAfter() çağrısı sayısı
    • Tek belgeli istekler ve sorgu istekleri için 10.
    • Çok belgeli okumalar, işlemler ve toplu yazmalar için 20. Her işlemde yukarıdaki 10 sınırı da geçerlidir.

      3 yazma işlemiyle bir toplu yazma isteği oluşturduğunuzu ve güvenlik kurallarınızın her yazma işlemini doğrulamak için 2 belge erişimi çağrısı kullandığını varsayalım. Bu durumda her yazma işlemi 10 erişim çağrısından 2'sini; toplu yazma isteği ise 20 erişim çağrısından 6'sını kullanır.

    Her iki sınırın da aşılması, "izin verilmedi" hatasıyla sonuçlanır.

    Bazı belge erişimi çağrıları önbelleğe alınabilir. Önbelleğe alınan çağrılar sınırlamaya dahil edilmez.

    Maksimum iç içe yerleştirilen match ifadesi derinliği 10
    Yol segmentlerinde, iç içe yerleştirilmiş bir grup match ifadesinde izin verilen maksimum yol uzunluğu 100
    İç içe yerleştirilen bir grup match ifadesinde izin verilen maksimum yol yakalama değişkeni sayısı 20
    Maksimum işlev çağrısı derinliği 20
    Maksimum işlev bağımsız değişkeni sayısı 7
    İşlev başına maksimum let işlev bağlama sayısı 10
    Maksimum yinelenen veya döngüsel işlev çağrısı sayısı 0 (izin verilmez)
    İstek başına değerlendirilen maksimum ifade sayısı 1.000
    Maksimum kural grubu boyutu Kural kümeleri iki boyut sınırına uymalıdır:
    • Firebase konsolundan veya firebase deploy ile CLI'den yayınlanan kural grubu metin kaynağının boyutu için 256 KB sınır.
    • Firebase, kaynağı işleyip arka uçta etkinleştirdiğinde ortaya çıkan derlenmiş kural grubunun boyutu için 250 KB sınır.

    Harcamaları yönet

    Faturanızda beklenmedik ücretlerle karşılaşmamak için aylık bütçeler ve uyarılar ayarlayın.

    Aylık bütçe belirleyin

    Cloud Firestore maliyetlerinizi takip etmek için Google Cloud Console'da aylık bütçe oluşturun. Bütçeler kullanımınızı sınırlamaz ancak aylık planlanan maliyetlerinize yaklaştığınızda veya bu maliyeti aştığınızda sizi bilgilendirecek uyarılar ayarlayabilirsiniz.

    Bütçe belirlemek üzere Google Cloud Console'da Faturalandırma bölümüne gidin ve Cloud Faturalandırma hesabınız için bir bütçe oluşturun. Varsayılan uyarı ayarlarını kullanabilir veya uyarıları, aylık bütçenizin farklı yüzdelerinde bildirim gönderecek şekilde değiştirebilirsiniz.

    Bütçeleri ve bütçe uyarılarını ayarlama hakkında daha fazla bilgi edinin.