Veritabanı seçin: Cloud Firestore veya Realtime Database

Firebase, bulut tabanlı ve istemci tarafından erişilebilen 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,önerilen kurumsal düzeyde JSON uyumlu bir belge veritabanıdır. 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 arama ve düşük gecikmeli senkronizasyon gerektiren, sınırlı ölçeklenebilirliğe sahip basit veri modelleri içeren uygulamalar için uygundur.

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

Önceki önemli noktaları göz önünde bulundurduktan sonra bir veritabanı seçmeye hazır olabilirsiniz. Avantajları ve dezavantajları değerlendirmeye devam ediyorsanız bu bölümde Cloud Firestore ile Realtime Database arasındaki diğer farklar ele alınmaktadır.

Veri modeli

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

Cloud Firestore [ TERCIH EDİLEN ] Realtime Database
Verileri doküman koleksiyonları olarak depolar.
  • Basit veriler, JSON'a çok benzeyen dokümanlarda kolayca depolanabilir.
  • Belgelerdeki alt koleksiyonlar kullanılarak karmaşık ve hiyerarşik veriler daha kolay ölçeklendirilebilir.
  • Daha az normalleştirme ve veri düzleştirme gerektirir.

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

Verileri tek bir büyük JSON ağacı olarak depolar.
  • Basit veriler çok kolay bir şekilde depolanabilir.
  • Karmaşık ve hiyerarşik verileri büyük ölçekte düzenlemek daha zordur.

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

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

Her ikisi de mobil öncelikli, gerçek zamanlı SDK'lara sahiptir ve her ikisi de çevrimdışı kullanıma hazır uygulamalar için yerel veri depolamayı destekler.

Cloud Firestore [ TERCIH EDİLEN ] Realtime Database
Apple, Android ve web istemcileri için çevrimdışı destek. Apple ve Android istemcileri için çevrimdışı destek.

Varlık

Bir istemcinin ne zaman çevrimiçi veya çevrimdışı olduğunu bilmek faydalı olabilir. Firebase Realtime Database, istemci bağlantı durumunu kaydedebilir ve istemcinin bağlantı durumu her değiştiğinde güncellemeler sağlayabilir.

Cloud Firestore [ TERCIH EDİLEN ] Realtime Database
Doğrudan desteklenmez. Realtime Database'nın varlık desteğinden yararlanmak için Cloud Functions kullanarak Cloud Firestore ve Realtime Database'yı senkronize edebilirsiniz. Cloud Firestore'da varlık oluşturma başlıklı makaleyi inceleyin. Presence desteklenir.

Sorgulama

Sorgular aracılığıyla her iki veri tabanından da veri alabilir, verileri sıralayabilir ve filtreleyebilirsiniz.

Cloud Firestore [ TERCIH EDİLEN ] Realtime Database
Sıralama ve filtreleme içeren dizine eklenmiş sorgular.
  • Filtreleri zincirleyebilir ve tek bir sorguda bir mülkte filtreleme ile sıralamayı birleştirebilirsiniz.
  • Sorgular yüzeyseldir: Yalnızca belirli bir koleksiyondaki veya koleksiyon grubundaki dokümanları döndürür ve alt koleksiyon verilerini döndürmez.
  • Sorgular her zaman belgelerin tamamını döndürmelidir.
  • Sorgular varsayılan olarak dizine eklenir: Sorgu performansı, veri kümenizle değil, sonuç kümenizin boyutuyla orantılıdır.
Sınırlı sıralama ve filtreleme özelliklerine sahip derin sorgular.
  • Sorgular, bir mülke göre sıralama veya filtreleme yapabilir 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 tek tek 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 [ TERCIH EDİLEN ] Realtime Database
Gelişmiş yazma ve işlem işlemleri.
  • Veri yazma 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)
  • İşlemler, veritabanının herhangi bir bölümündeki verileri atomik olarak okuyup yazabilir.
Temel yazma ve işlem işlemleri.
  • Veri yazma (set ve update işlemleriyle)
  • İşlemler, belirli bir veri alt ağacında atomik olarak gerçekleşir.

Güvenilirlik ve performans

Cloud Firestore [ TERCIH 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 fazla olmayan düşük gecikmeli bir çözüm.
  • Verilerinizi farklı bölgelerdeki birden fazla veri merkezinde barındırarak küresel ölçeklenebilirlik ve yüksek güvenilirlik sağlar.
  • Dünya genelinde bölgesel veya çok bölgeli yapılandırmalarda kullanılabilir.
Cloud Firestore performans ve güvenilirlik özellikleri hakkında daha fazla bilgiyi Hizmet Düzeyi Sözleşmesi'nde bulabilirsiniz.
Realtime Database bir bölgesel çözümdür.
  • Bölgesel yapılandırmalarda kullanılabilir. Veritabanları, bir bölgedeki bölgesel kullanılabilirlikle sınırlıdır.
  • Tipik yanıt süreleri 10 ms'den fazla olmayan, son derece düşük gecikme süresi. 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 [ TERCIH EDİLEN ] Realtime Database
Son derece yüksek çalışma süresi performansı.
  • %99,999'luk normal çalışma süresi performansı.
  • Örneğin, e-ticaret uygulamalarında kullanılabilirlik büyük önem taşıyorsa Cloud Firestore kullanın.
Yüksek çalışma süresi performansı.
  • %99,95'lik normal çalışma süresi performansı.

Ölçeklenebilirlik

Cloud Firestore [ TERCIH EDİLEN ] Realtime Database
Ölçeklendirme otomatik olarak yapılır.
  • 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. Bu sınırları gelecekte artırmayı planlıyoruz.
  • Tek tek belgelere veya dizinlere yazma hızlarıyla ilgili sınırlar vardır.
Ölçeklendirme için parçalama gerekir.
  • Tek bir veritabanında yaklaşık 200.000 eşzamanlı bağlantı ve 1.000 yazma/saniye olacak şekilde ölçeklendirin. Bu sınırın ötesinde ölçeklendirme yapmak için verilerinizi birden fazla veritabanına bölmeniz gerekir.
  • Verilerin tek tek yazılma hızında yerel sınırlama yoktur.

Güvenlik

Cloud Firestore [ TERCIH EDİLEN ] Realtime Database
Yetkilendirme ve doğrulamayı birleştiren, basamaklı olmayan kurallar.
  • Cloud Firestore Security Rules ile güvenliği sağlanan mobil SDK'lardan okuma ve yazma işlemleri yapar.
  • Identity and Access Management (IAM) ile güvenliği sağlanan sunucu SDK'larından okuma ve yazma işlemleri.
  • Joker karakter kullanmadığınız sürece kurallar basamaklı olarak uygulanmaz.
  • Kurallar sorguları kısıtlayabilir: Bir sorgunun sonuçları, kullanıcının erişimi olmayan veriler içerebilir. Bu durumda sorgunun tamamı başarısız olur.
Yetkilendirme 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 [ TERCIH EDİLEN ] Realtime Database
Ücretler öncelikle veritabanınızda gerçekleştirilen işlemler (okuma, yazma, silme) ve daha düşük bir oranda bant genişliği ve depolama alanı üzerinden alınır.

Cloud Firestore, App Engine projeleri için günlük harcama sınırlarını destekler. Böylece, rahat olduğunuz maliyetleri aşmazsınız.

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 daha yüksek bir oranda.

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

Cloud Firestore ve Realtime Database kullanma

Aynı Firebase uygulaması veya projesi içinde her iki veritabanını da kullanabilirsiniz. Her iki NoSQL veritabanı da aynı türdeki verileri 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 sürümlerinde kullanılabilen özellikler hakkında daha fazla bilgi edinin.

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

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