Bir veritabanı seçin: Cloud Firestore veya Realtime Database

Firebase, bulut tabanlı ve istemciye erişilebilir iki belge veritabanı sunar. Yeni müşterilerin Cloud Firestore ile başlamasını öneririz:

  • Cloud Firestore, 250.000'den fazla geliştiricinin güvendiği,kurumsal sınıf JSON uyumlu önerilen belge veritabanı. Sorgulanabilirlik, ölçeklenebilirlik ve yüksek kullanılabilirlik gerektiren zengin veri modellerine sahip uygulamalar için uygundur. Ayrıca düşük gecikmeli istemci senkronizasyonu ve çevrimdışı veri erişimi de sunar.

  • Realtime Database, klasik Firebase JSON veritabanıdır. Basit aramalar ve sınırlı ölçeklenebilirlik ile düşük gecikmeli senkronizasyon gerektiren basit veri modellerine sahip uygulamalar için uygundur.

Dikkate alınması gereken diğer önemli noktalar nelerdir?

Önceki önemli hususları göz önünde bulundurduktan sonra bir veritabanı seçmeye hazır olabilirsiniz. Avantaj ve dezavantajları karşılaştırmaya devam ediyorsanız bu bölümde Cloud Firestore ile Realtime Database arasındaki diğer farkları görebilirsiniz.

Veri modeli

Hem Realtime Database hem de Cloud Firestore NoSQL veritabanlarıdır.

Cloud Firestore [ TERCİH EDİLEN ] Realtime Database
Verileri, doküman koleksiyonları olarak depolar.
  • Basit verilerin JSON'a çok benzeyen belgelerde depolanması kolaydır.
  • Karmaşık, hiyerarşik verilerin büyük ölçekte düzenlenmesi, dokümanlar içindeki alt koleksiyonlar kullanılarak daha kolaydır.
  • Daha az normalleştirme ve veri birleştirme gerektirir.

Cloud Firestore veri modeli hakkında daha fazla bilgi edinin.

Verileri tek bir büyük JSON ağacı olarak depolar.
  • Basit verileri saklamak çok kolaydır.
  • Karmaşık, hiyerarşik verilerin büyük ölçekte düzenlenmesi daha zordur.

Realtime Database veri modeli hakkında daha fazla bilgi edinin.

Gerçek zamanlı ve çevrimdışı destek

Her ikisinin de mobil cihazlara öncelik veren, gerçek zamanlı SDK'ları vardır ve her ikisi de çevrimdışı kullanıma hazır uygulamalar için yerel veri depolama alanını destekler.

Cloud Firestore [ TERCİH EDİLİR ] Realtime Database
Apple, Android ve web istemcileri için çevrimdışı destek Apple ve Android istemcileri için çevrimdışı destek

Varlık

Bir müşterinin ne zaman çevrimiçi veya çevrimdışı olduğunu bilmek yararlı olabilir. FirebaseRealtime Database, istemci bağlantı durumunu kaydedebilir ve istemcinin bağlantı durumu her değiştiğinde güncelleme sağlayabilir.

Cloud Firestore [ ÖNCELİKLİ ] Realtime Database
Doğal olarak desteklenmez. Cloud Functions kullanarak Cloud Firestore ve Realtime Database'yi senkronize ederek Realtime Database'ün mevcudiyet desteğinden yararlanabilirsiniz. Cloud Firestore'te mevcudiyet oluşturma başlıklı makaleyi inceleyin. Bulunma durumu desteklenir.

Sorgulama

Sorgular aracılığıyla iki veritabanından da veri alma, sıralama ve filtreleme.

Cloud Firestore [ ÖNCELİKLİ ] Realtime Database
Bileşik sıralama ve filtreleme içeren dizine eklenmiş sorgular.
  • Filtreleri zincirleyebilir ve bir mülkte filtreleme ile sıralamayı tek bir sorguda birleştirebilirsiniz.
  • Sorgular yüzeyseldir: Yalnızca belirli bir koleksiyondaki veya koleksiyon grubundaki dokümanları döndürür, alt koleksiyon verilerini döndürmez.
  • Sorgular her zaman dokümanların tamamını döndürmelidir.
  • Sorgular varsayılan olarak dizine eklenir: Sorgu performansı, veri kümenizin değil sonuç kümenizin boyutuyla orantılıdır.
Sınırlı sıralama ve filtreleme özelliklerine sahip derin sorgular.
  • Sorgular, bir mülkü sırlayabilir veya filtreleyebilir ancak ikisini birden yapamaz.
  • Sorgular varsayılan olarak derindir: Her zaman alt ağacın tamamını döndürürler.
  • Sorgular, JSON ağacındaki tekil yaprak düğüm değerlerine kadar her ayrıntı düzeyinde verilere erişebilir.
  • Sorgular için dizin gerekmez ancak veri kümeniz büyüdükçe belirli sorguların performansı düşer.

Yazmalar ve işlemler

Cloud Firestore [ TERCİH EDİLİR ] Realtime Database
Gelişmiş yazma ve işlem işlemleri.
  • Ayarlama ve güncelleme işlemlerinin yanı sıra dizi ve sayısal operatörler gibi gelişmiş dönüşümler aracılığıyla veri yazma işlemleri
  • İşlemler, veritabanının herhangi bir kısmından verileri atomik olarak okuyabilir ve yazabilir.
Temel yazma ve işlem işlemleri.
  • Ayarlama ve güncelleme işlemleri aracılığıyla veri yazma.
  • İşlemler, belirli bir veri alt ağacında atomiktir.

Güvenilirlik ve performans

Cloud Firestore [ TERCİH EDİLEN ] Realtime Database
Cloud Firestore, otomatik olarak ölçeklenen bölgesel ve çok bölgeli bir çözümdür.
  • Tipik yanıt süreleri 30 ms'den uzun olmayan, düşük gecikmeli bir çözüm.
  • Verilerinizi farklı bölgelerdeki birden fazla veri merkezinde barındırarak küresel ölçeklenebilirlik ve güçlü güvenilirlik sağlar.
  • Dünya genelinde bölgesel veya çok bölgeli yapılandırmalarda kullanılabilir.
Hizmet Düzeyi Sözleşmesi'nden Cloud Firestore performansı ve güvenilirlik özellikleri hakkında daha fazla bilgi edinebilirsiniz.
Realtime Database bölgesel bir çözümdür.
  • Bölgesel yapılandırmalarda kullanılabilir. Veritabanları, bir bölgedeki bölgesel kullanılabilirlikle sınırlıdır.
  • Son derece düşük gecikme ve tipik yanıt süreleri 10 ms'den fazla değildir. Sık sık durum senkronizasyonu için ideal bir seçenektir.
Realtime Database performans ve güvenilirlik özellikleri hakkında daha fazla bilgiyi Hizmet Düzeyi Sözleşmesi'nde bulabilirsiniz.

Çalışma süresi

Cloud Firestore [ ÖNCELİKLİ ] Realtime Database
Son derece yüksek çalışma süresi performansı.
  • %99,999'luk tipik çalışma süresi performansı.
  • Kullanılabilirlik son derece önemliyse (ör. e-ticaret uygulamalarında) Cloud Firestore kullanın.
Yüksek çalışma süresi performansı.
  • %99,95'lik tipik çalışma süresi performansı.

Ölçeklenebilirlik

Cloud Firestore [ TERCİH EDİLİR ] Realtime Database
Ölçeklendirme otomatiktir.
  • Tamamen otomatik olarak ölçeklenir. Ölçeklendirme sınırları yaklaşık 1 milyon eşzamanlı bağlantı ve saniyede 10.000 yazma işlemidir. Gelecekte bu sınırları artırmayı planlıyoruz.
  • Tek tek belge veya dizinlere yönelik yazma hızları açısından sınırlar vardır.
Ölçeklendirme için bölümlendirme gerekir.
  • Tek bir veritabanında yaklaşık 200.000 eşzamanlı bağlantı ve saniyede 1.000 yazma işlemine ölçeklenebilir. Bunun ötesinde ölçeklendirme için verilerinizi birden fazla veritabanında parçalamanız gerekir.
  • Bağımsız veri parçalarına yazma hızlarında yerel sınırlama yoktur.

Güvenlik

Cloud Firestore [ ÖNCELİKLİ ] Realtime Database
Yetkilendirme ve doğrulamayı birleştiren basamaklı olmayan kurallar.
  • Güvenliği Cloud Firestore Security Rules tarafından sağlanan mobil SDK'lardan okuma ve yazma.
  • Identity and Access Management (IAM) tarafından korunan sunucu SDK'larından okuma ve yazma işlemleri gerçekleştirir.
  • Joker karakter kullanmadığınız sürece kurallar basamaklamaz.
  • Kurallar sorguları kısıtlayabilir: Bir sorgunun sonuçları kullanıcının erişemediği veriler içeriyorsa sorgunun tamamı başarısız olur.
Yetkilendirmeyi ve doğrulamayı ayıran basamaklı kurallar dili.

Fiyatlandırma

Her iki çözüm de Spark ve Blaze fiyatlandırma planlarında kullanılabilir.

Cloud Firestore [ TERCİH EDİLEN ] Realtime Database
Ücretler öncelikle veritabanında yaptığınız işlemler (okuma, yazma, silme) ve daha düşük bir oranda bant genişliği ve depolama alanı üzerinden alınır.

Cloud Firestore, belirlediğiniz maliyetleri aşmamanız için App Engine projeleri için günlük harcama sınırlarını destekler.

Cloud Firestore Fiyatlandırma planları hakkında daha fazla bilgi edinin.

Yalnızca bant genişliği ve depolama alanı için ücret alınır ancak ücret daha yüksektir.

Realtime Database fiyatlandırma planları hakkında daha fazla bilgi edinin.

Cloud Firestore ve Realtime Database kullanılıyor

Her iki veritabanını da aynı Firebase uygulamasında veya projesinde kullanabilirsiniz. Her iki NoSQL veritabanı da aynı veri türlerini depolayabilir ve istemci kitaplıkları benzer şekilde çalışır. Uygulamanızda her iki veritabanını da kullanmaya karar verirseniz daha önce belirtilen farklılıkları göz önünde bulundurun.

Hem Realtime Database hem de Cloud Firestore'te sunulan özellikler hakkında daha fazla bilgi edinin.

Veritabanı seçmeye hazır mısınız?

Bu karşılaştırmanın, bir Firebase veritabanı çözümüne karar vermenize yardımcı olduğunu umuyoruz. Artık Firebase projelerinize nasıl veritabanı ekleyeceğinizi öğrenebilirsiniz.