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 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ç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 noktaları düşündükten sonra bir veritabanı seçmeye hazır olabilirsiniz. Avantaj ve dezavantajları karşılaştırmaya 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 Tercih Edilen Realtime Database
Verileri, doküman koleksiyonları olarak depolar.
  • Basit veriler, JSON'a çok benzeyen dokümanlarda kolayca saklanabilir.
  • Karmaşık ve hiyerarşik verilerin içindeki alt koleksiyonlar kullanılarak, bu verilerin geniş ölçekte düzenlenmesi daha kolaydır.
  • Daha az normalleştirme ve veri birleştirme gerektirir.

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

Verileri büyük bir JSON ağacı olarak depolar.
  • Basit verileri saklamak çok kolaydır.
  • Karmaşık, hiyerarşik verilerin geniş ölçekte organize edilmesi 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 çevrimdışı kullanıma hazır uygulamalar için yerel veri depolamayı destekler.

Cloud Firestore Tercih Edilen 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. Firebase Realtime Database, istemcinin bağlantı durumunu kaydedebilir ve istemcinin bağlantı durumu her değiştiğinde güncelleme sunabilir.

Cloud Firestore Tercih Edilen Realtime Database
Yerel olarak desteklenmez. Cloud Functions'ı kullanarak Cloud Firestore ve Realtime Database'i senkronize ederek Realtime Database'in varlık desteğinden yararlanabilirsiniz. Cloud Firestore'da varlık oluşturma bölümüne göz atın. Bulunma dayalı değil.

Sorgulanıyor

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

Cloud Firestore Tercih Edilen Realtime Database
Bileşik sıralama ve filtreleme içeren dizine eklenmiş sorgular.
  • Filtreleri zincirleyebilir, tesisteki filtreleme ve sıralamayı tek bir sorguda birleştirebilirsiniz.
  • Sorgular yüzeyseldir: Yalnızca belirli bir koleksiyon veya koleksiyon grubundaki dokümanları döndürürler, alt koleksiyon verilerini döndürmezler.
  • Sorgular her zaman tüm dokümanları 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ülkte sıralanabilir veya filtre uygulayabilir, ancak ikisini birden düzenleyemez.
  • Sorgular varsayılan olarak derindir: Her zaman alt ağacın tamamını döndürürler.
  • Sorgular, JSON ağacındaki bağımsız yaprak düğümü değerlerine kadar herhangi bir ayrıntı düzeyinde verilere erişebilir.
  • Sorgular dizin gerektirmez ancak veri kümeniz büyüdükçe belirli sorguların performansı düşer.

Yazmalar ve işlemler

Cloud Firestore Tercih Edilen Realtime Database
Gelişmiş yazma ve işlem işlemleri.
  • Küme ve güncelleme işlemlerinin yanı sıra dizi ve sayısal operatörler gibi gelişmiş dönüşümlerle veri işlemlerini yazın.
  • İşlemler, veritabanının herhangi bir bölümündeki verileri otomatik olarak okuyup yazabilir.
Temel yazma ve işlem işlemleri.
  • Ayarlama ve güncelleme işlemleri aracılığıyla veri yazın.
  • İşlemler, belirli bir veri alt ağacında çok etkilidir.

Güvenilirlik ve performans

Cloud Firestore Tercih Edilen Realtime Database
Cloud Firestore, otomatik olarak ölçeklendirilen bölgesel ve çok bölgeli bir çözümdür.
  • Tipik yanıt sürelerinin 30 ms'den fazla olmadığı 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 genelindeki 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'nden edinebilirsiniz.
Realtime Database, bölgesel bir çözümdür.
  • Bölgesel yapılandırmalarda kullanılabilir. Veritabanlarının kullanılabilirliği, bir bölge içinde alt bölgesel kullanılabilirlik ile 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'nden edinebilirsiniz.

Çalışma süresi

Cloud Firestore Tercih Edilen Realtime Database
Son derece yüksek çalışma süresi performansı.
  • %99,999 oranında genel çalışma süresi performansı.
  • Stok durumu çok önemliyse (ör. e-ticaret uygulamalarında) Cloud Firestore'u kullanın.
Yüksek çalışma süresi performansı.
  • %99,95 oranında genel çalışma süresi performansı.

Ölçeklenebilirlik

Cloud Firestore Tercih Edilen Realtime Database
Ölçeklendirme otomatiktir.
  • Tamamen otomatik olarak ölçeklendirilir. Ölçeklendirme sınırları,yaklaşık 1 milyon eşzamanlı bağlantı ve 10.000 yazma/saniyedir. Bu sınırları gelecekte 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 parçalama gerekir.
  • Tek bir veritabanında yaklaşık 200.000 eşzamanlı bağlantıya ve 1.000 yazma/saniyeye göre ölçeklendirme yapın. Bunun ötesinde ölçeklendirme için verilerinizi birden fazla veritabanında parçalamanız gerekir.
  • Ayrı veri parçalarına yazma hızlarında yerel sınırlar uygulanmaz.

Güvenlik

Cloud Firestore Tercih Edilen Realtime Database
Yetkilendirme ve doğrulamayı birleştiren, geçişli olmayan kurallar.
  • Güvenliği Cloud Firestore Güvenlik Kuralları ile sağlanan mobil SDK'lardan okur ve yazar.
  • Güvenliği Identity and Access Management (IAM) ile sağlanan sunucu SDK'larından okuma ve yazma.
  • 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.
Yetkilendirme ile doğrulamayı ayıran geçişli kural dili.

Fiyatlandırma

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

Cloud Firestore Tercih Edilen Realtime Database
Esas olarak veritabanınızda gerçekleştirilen işlemler (okuma, yazma, silme) ile daha düşük bir hızda, bant genişliği ve depolama alanında ücret alınır.

Cloud Firestore, sizi zorlamayacak 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 için ücret alınır, ancak daha yüksek bir ücret alınır.

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

Cloud Firestore ve Realtime Database'i Kullanma

Her iki veritabanını da aynı Firebase uygulaması veya projesinde kullanabilirsiniz. Her iki NoSQL veritabanı da aynı tür verileri depolayabilirken istemci kitaplıkları da 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'da 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ünde karar kılmanıza yardımcı olduğunu umuyorum. Artık Firebase projelerinize veritabanı eklemeyi öğrenebilirsiniz.