Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Verilerinizi İndeksleyin

Firebase, rastgele bir alt anahtar kullanarak verileriniz üzerinde anlık sorgular yapmanıza olanak tanır. Dizinlerinizin ne olacağını önceden biliyorsanız, sorgu performansını iyileştirmek için bunları .indexOn Gerçek Zamanlı Veritabanı Güvenlik Kurallarınızdaki .indexOn kuralı aracılığıyla tanımlayabilirsiniz.

Veri Dizinlerini Tanımlama

Firebase, verilerinizi sipariş etmek ve sorgulamak için güçlü araçlar sağlar. Firebase özellikle herhangi bir ortak alt anahtar kullanarak bir düğüm koleksiyonunda anlık sorgular yapmanıza olanak tanır. Uygulamanız büyüdükçe, bu sorgunun performansı düşer. Ancak Firebase'e sorgulayacağınız anahtarlardan söz ederseniz, Firebase bu anahtarları sunucularda dizine ekleyerek sorgularınızın performansını artırır.

OrderByChild ile indeksleme

Bunu açıklamanın en kolay yolu bir örnektir. Firebase'de hepimiz dinozorların oldukça havalı olduğu konusunda hemfikiriz. İşte dinozor gerçeklerinin örnek bir veritabanından bir parça. .indexOn orderByChild() ile nasıl çalıştığını açıklamak için kullanacağız.

{
  "lambeosaurus": {
    "height" : 2.1,
    "length" : 12.5,
    "weight": 5000
  },
  "stegosaurus": {
    "height" : 4,
    "length" : 9,
    "weight" : 2500
  }
}

Hayal edelim ki uygulamamızda dinozorları sık sık isme, boyuna ve uzunluğuna göre sipariş etmemiz gerekiyor, ancak asla ağırlıklarına göre değil. Firebase'e bu bilgileri söyleyerek sorgularımızın performansını artırabiliriz. Dinozorların adı sadece anahtar olduğundan, Firebase, kaydın anahtarı olduğu için dinozor adına göre sorgular için zaten optimizasyon yapıyor. .indexOn sorguları yükseklik ve uzunluk açısından optimize etmesini söylemek için .indexOn kullanabiliriz:

{
  "rules": {
    "dinosaurs": {
      ".indexOn": ["height", "length"]
    }
  }
}

Diğer kurallar gibi, kurallarınızda herhangi bir düzeyde bir .indexOn kuralı belirtebilirsiniz. Yukarıdaki örnekte kök düzeyine yerleştirdik çünkü tüm dinozor verileri veritabanının kökünde depolanıyor.

OrderByValue ile indeksleme

Bu örnekte, .indexOn orderByValue() ile nasıl çalıştığını orderByValue() . Aşağıdaki verilerle dino sporları skorlarından oluşan bir liderlik tablosu yaptığımızı varsayalım:

{
  "scores": {
    "bruhathkayosaurus" : 55,
    "lambeosaurus" : 21,
    "linhenykus" : 80,
    "pterodactyl" : 93,
    "stegosaurus" : 5,
    "triceratops" : 22
  }
}

Biz afiş oluşturmak için orderByValue () kullandığınız için, biz ekleyerek sorguları optimize edebilirsiniz .value bizim de kural /scores düğümü:

{
  "rules": {
    "scores": {
      ".indexOn": ".value"
    }
  }
}