Bir 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, 600.000'den fazla geliştiricinin güvendiği,önerilen kurumsal sınıf JSON uyumlu 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 sunar.

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

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

Önceki önemli noktaları değerlendirdikten sonra veritabanı seçmeye hazır olabilirsiniz. Avantajları ve dezavantajları değerlendirmeye devam ediyorsanız bu bölümde Cloud Firestore ve 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 [ PREFERRED ] Realtime Database
Verileri doküman koleksiyonları olarak depolar.
  • Basit veriler, JSON'a çok benzeyen dokümanlarda kolayca depolanabilir.
  • Karmaşık, hiyerarşik verileri, belgelerdeki alt koleksiyonları kullanarak geniş ölçekte düzenlemek daha kolaydır.
  • Daha az normalleştirme ve veri düzleştirme gerektirir.

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

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

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

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

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

Cloud Firestore [ PREFERRED ] 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 [ PREFERRED ] Realtime Database
Doğal olarak desteklenmez. Cloud Functions kullanarak Cloud Firestore ve Realtime Database senkronizasyonuyla Realtime Database'ın iletişim durumu desteğini geliştirebilirsiniz. Cloud Firestore'da iletişim durumu oluşturma başlıklı makaleyi inceleyin. Varlık desteklenir.

Sorgulama

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

Cloud Firestore [ PREFERRED ] 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 sığdır: Yalnızca belirli bir koleksiyon veya koleksiyon grubundaki dokümanları döndürür ve alt koleksiyon verilerini döndürmez.
  • Sorgular her zaman tam dokümanlar 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 özellikleriyle derin sorgular.
  • Sorgular bir mülkü sıralayabilir veya filtreleyebilir ancak ikisini birden yapamaz.
  • Sorgular varsayılan olarak derindir: Her zaman tüm alt ağacı döndürürler.
  • Sorgular, JSON ağacındaki tek tek yaprak düğüm değerlerine kadar her ayrıntı düzeyindeki 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 [ PREFERRED ] Realtime Database
Gelişmiş yazma ve işlem operasyonları
  • Ayar 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 bölümünden verileri atomik olarak okuyabilir ve yazabilir.
Temel yazma ve işlem operasyonları
  • Ayar 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 [ PREFERRED ] Realtime Database
Cloud Firestore, otomatik olarak ölçeklenen bölgesel ve çok bölgeli bir çözümdür.
  • Düşük gecikmeli bir çözümdür ve normal yanıt süreleri 30 milisaniyeyi aşmaz.
  • 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.
Cloud Firestore performans ve güvenilirlik özellikleri hakkında daha fazla bilgiyi Hizmet Düzeyi Sözleşmesi'nde bulabilirsiniz.
Realtime Database, bölgesel bir çözümdür.
  • Bölgesel yapılandırmalarda kullanılabilir. Veritabanları, bir bölge içindeki bölgesel kullanılabilirlikle sınırlıdır.
  • Son derece düşük gecikme süresi (tipik yanıt süreleri 10 ms'yi aşmaz). Sık durum senkronizasyonu için ideal bir seçenektir.
Realtime Database performans ve güvenilirlik özellikleri hakkında daha fazla bilgi için Hizmet Düzeyi Sözleşmesi'ni inceleyin.

Çalışma süresi

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

Ölçeklenebilirlik

Cloud Firestore [ PREFERRED ] Realtime Database
Ölçeklendirme otomatiktir.
  • Tamamen otomatik olarak ölçeklenir. Eşzamanlı bağlantı veya genel veritabanı yazma/saniye hızıyla ilgili bir sınır yoktur.
  • Belirli dokümanlara 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 saniyede 1.000 yazma işlemi gerçekleştirecek şekilde ölçeklendirme yapabilirsiniz. Bu sınırın ötesinde ölçeklendirme yapmak için verilerinizi birden fazla veritabanına bölmeniz gerekir.
  • Veri parçalarına yazma hızlarında yerel sınırlama yoktur.

Güvenlik

Cloud Firestore [ PREFERRED ] Realtime Database
Yetkilendirme ve doğrulamayı birleştiren basamaklı olmayan kurallar.
  • Cloud Firestore Security Rules tarafından korunan mobil SDK'lardan okuma ve yazma işlemleri.
  • Identity and Access Management (IAM) tarafından korunan 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şemediği veriler içeriyorsa sorgunun tamamı başarısız olur.
Yetkilendirme ve doğrulamayı ayıran basamaklı kural dili.

Fiyatlandırma

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

Cloud Firestore [ PREFERRED ] Realtime Database
Ücretler öncelikle veritabanınızda gerçekleştirilen işlemlere (okuma, yazma, silme) ve daha düşük bir oranda bant genişliği ile depolama alanına göre belirlenir.

Cloud Firestore, rahatça harcayabileceğinizden daha fazla harcama yapmamanız için aylık bütçeleri ve uyarıları 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.

Hem Cloud Firestore hem de Realtime Database kullanın

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 açıklanan farklılıkları göz önünde bulundurun.

Hem Realtime Database hem de Cloud Firestore'da 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üne karar vermenize yardımcı olduğunu umuyoruz. Artık Firebase projelerinize nasıl veritabanı ekleyeceğinizi öğrenebilirsiniz.