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ç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 hususları göz önünde bulundurduktan sonra bir veritabanı seçmeye hazır olabilirsiniz. Avantajları ve dezavantajları hâlâ değerlendiriyorsanız bu bölümde Cloud Firestore ile Realtime Database arasındaki diğer farklılıklar ele alınmaktadır.

Veri modeli

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

Cloud Firestore [ ÖNCELİKLİ ] 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 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 verilerin depolanması ç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 [ ÖNCELİKLİ ] 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 ne zaman ç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 [ TERCİH EDİLEN ] 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 [ TERCİH EDİLEN ] Realtime Database
Karma sıralama ve filtreleme içeren dizine eklenen 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 özellikleri olan 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 [ ÖNCELİKLİ ] 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 [ ÖNCELİKLİ ] Realtime Database
Cloud Firestore, otomatik olarak ölçeklendirilen 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 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, 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.
  • Tipik yanıt süreleri 10 ms'den uzun olmayan son derece düşük gecikme. 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ı.
  • Stok durumu çok ö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 [ ÖNCELİKLİ ] 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. Bu sınırları gelecekte artırmayı planlıyoruz.
  • Ayrı belgelere veya dizinlere yazma hızları için sınırlamalar 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. Bu boyutun ötesine geçmek için verilerinizi birden fazla veritabanına bölmeniz gerekir.
  • Bağımsız veri parçalarına yazma hızlarında yerel sınırlama yoktur.

Güvenlik

Cloud Firestore [ TERCİH EDİLEN ] 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 gerçekleştirir.
  • 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 basamaklandırılmaz.
  • 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 [ ÖNCELİKLİ ] 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 kullanılabilen ö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.