了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

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

Firebase, gerçek zamanlı veri senkronizasyonunu destekleyen, bulut tabanlı, istemci tarafından erişilebilen iki veritabanı çözümü sunar:

  • Cloud Firestore, Firebase'in mobil uygulama geliştirmeye yönelik en yeni veritabanıdır. Yeni, daha sezgisel bir veri modeliyle Gerçek Zamanlı Veritabanının başarılarını temel alır. Cloud Firestore ayrıca, Gerçek Zamanlı Veritabanından daha zengin, daha hızlı sorgular ve ölçekler sunar.

  • Gerçek Zamanlı Veritabanı, Firebase'in orijinal veritabanıdır. İstemciler arasında gerçek zamanlı olarak senkronize edilmiş durumlar gerektiren mobil uygulamalar için verimli, düşük gecikmeli bir çözümdür.

Firebase hangi veritabanını önerir?

Veritabanı çözümü seçiminiz birçok faktöre bağlı olacaktır, ancak belirli özellikler söz konusu olduğunda hangi veritabanının sizin için doğru olduğu konusunda önerilerde bulunabiliriz.

Her iki çözüm de şunları sunar:

  • Dağıtılacak ve bakımı yapılacak sunucu içermeyen, istemci öncelikli SDK'lar
  • Gerçek zamanlı güncellemeler
  • Ücretsiz kullanım, ardından kullandığınız kadar ödeyin

Kilit hususlar

Her iki veritabanında ortak olan harika temel özelliklerin ötesinde, aşağıda listelenen hususlardan herhangi birinin veya tümünün uygulamalarınızın başarısını nasıl etkileyeceğini düşünün.

veritabanının rolü
Uygulamam bir veritabanı kullanıyor...
Temel sorgulama ile öncelikle verileri senkronize etme.
Gelişmiş sorgulama, sıralama ve işlemlere ihtiyacınız yoksa Realtime Database'i öneriyoruz.
Gelişmiş sorgulama, sıralama ve işlemler.
Örneğin, e-ticaret uygulamalarında verilerinizle karmaşık etkileşimlere ihtiyacınız varsa, Cloud Firestore'u öneririz.
Veriler üzerindeki işlemler
Uygulamamın veritabanı kullanımı şuna benziyor...
Sık sık değişen birkaç GB veya daha az veri.
Uygulamanız, örneğin bir dijital beyaz tahta uygulamasında olduğu gibi küçük güncellemeler akışı gönderecekse, Gerçek Zamanlı Veritabanını öneririz.
Değiştirildiğinden çok daha sık okunan yüzlerce GB ila TB veri.
Çok büyük veri kümeleri için ve toplu işlemlere sıklıkla ihtiyaç duyulduğunda, Cloud Firestore'u öneririz.
Veri örneği
Verilerimi şu şekilde yapılandırmayı tercih ediyorum...
Basit bir JSON ağacı.
JSON yapılandırılmamış verileri için, Gerçek Zamanlı Veritabanını öneririz.
Koleksiyonlar halinde düzenlenmiş belgeler.
Yapılandırılmış belgeler ve koleksiyonlar için Cloud Firestore'u öneririz.
Kullanılabilirlik
Kullanılabilirlik ihtiyaçlarım...
%99,999 oranında son derece yüksek çalışma süresi garantisi.
Örneğin e-ticaret uygulamalarında kullanılabilirlik çok önemliyse, Cloud Firestore'u öneririz.
En az %99,95 çalışma süresi garantisi.
Çok yüksek ancak kritik olmayan kullanılabilirlik kabul edilebilir olduğunda, Cloud Firestore veya Realtime Database'i öneririz.
Yerel verilerde çevrimdışı sorgular
Uygulamamın, sınırlı bağlantısı olan veya hiç bağlantısı olmayan cihazlarda sorgu gerçekleştirmesi gerekecek...
Sıklıkla.
Kullanıcı çevrimdışıyken yerel veriler üzerinde gelişmiş sorgulama özellikleri için Cloud Firestore'u öneririz.
Nadiren veya asla.
Kullanıcılarınızın sürekli çevrimiçi olmasını bekliyorsanız, Cloud Firestore veya Realtime Database'i öneririz.
Veritabanı örneği sayısı
Bireysel projelerimde kullanmam gereken...
Birçok veri tabanı, örneğin her büyük müşteri için bir veri tabanı.
Tek bir Firebase projesine birden çok veritabanı eklemenize izin verdiği için, Realtime Database'i öneririz.
Sadece tek bir veritabanı.
Tek bir veritabanına ihtiyacınız varsa, Cloud Firestore veya Realtime Database'i öneririz.

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

Önceki önemli hususları düşündükten sonra, bir veritabanı seçmeye hazır olabilirsiniz. Hâlâ artıları ve eksileri tartıyorsanız, bu bölüm Cloud Firestore ve Realtime Database arasındaki diğer farkları kapsar.

Veri örneği

Hem Gerçek Zamanlı Veritabanı hem de Cloud Firestore, NoSQL Veritabanlarıdır.

Gerçek Zamanlı Veritabanı Bulut Firestore
Verileri tek bir büyük JSON ağacı olarak depolar.
  • Basit verilerin saklanması çok kolaydır.
  • Karmaşık, hiyerarşik verilerin ölçekte düzenlenmesi daha zordur.

Gerçek Zamanlı Veritabanı veri modeli hakkında daha fazla bilgi edinin.

Verileri belge koleksiyonları olarak depolar.
  • Basit verilerin, JSON'a çok benzeyen belgelerde saklanması kolaydır.
  • Belgelerdeki alt koleksiyonlar kullanılarak karmaşık, hiyerarşik verilerin ölçekte düzenlenmesi daha kolaydır.
  • Daha az denormalizasyon ve veri düzleştirme gerektirir.

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

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

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

Gerçek Zamanlı Veritabanı Bulut Firestore
Apple ve Android istemcileri için çevrimdışı destek. Apple, Android ve web istemcileri için çevrimdışı destek.

Mevcudiyet

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

Gerçek Zamanlı Veritabanı Bulut Firestore
Varlık desteklenir. Yerel olarak desteklenmiyor. Cloud Firestore ve Realtime Database'i Cloud Functions kullanarak senkronize ederek Realtime Database'in varlık desteğinden yararlanabilirsiniz. Cloud Firestore'da varlık oluşturma konusuna bakın.

sorgulama

Sorgular aracılığıyla her iki veritabanından da verileri alın, sıralayın ve filtreleyin.

Gerçek Zamanlı Veritabanı Bulut Firestore
Sınırlı sıralama ve filtreleme işlevine sahip derin sorgular.
  • Sorgular bir özelliği 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 bireysel yaprak düğüm değerlerine kadar herhangi bir ayrıntı düzeyindeki verilere erişebilir.
  • Sorgular bir dizin gerektirmez; ancak, veri kümeniz büyüdükçe belirli sorguların performansı düşer.
Bileşik sıralama ve filtreleme ile dizinlenmiş sorgular.
  • Filtreleri zincirleyebilir ve filtreleme ile sıralamayı bir özellik üzerinde tek bir sorguda birleştirebilirsiniz.
  • Sorgular yüzeyseldir: yalnızca belirli bir koleksiyon veya koleksiyon grubundaki belgeleri döndürürler ve alt koleksiyon verilerini döndürmezler.
  • Sorgular her zaman tüm belgeleri döndürmelidir.
  • Sorgular varsayılan olarak dizine eklenir: Sorgu performansı, veri kümenizle değil, sonuç kümenizin boyutuyla orantılıdır.

Yazmalar ve işlemler

Gerçek Zamanlı Veritabanı Bulut Firestore
Temel yazma ve işlem işlemleri. Gelişmiş yazma ve işlem işlemleri.
  • Ayarlama ve güncelleme işlemlerinin yanı sıra dizi ve sayısal işleçler gibi gelişmiş dönüşümler yoluyla veri işlemlerini yazın .
  • İşlemler, veritabanının herhangi bir bölümündeki verileri atomik olarak okuyabilir ve yazabilir.

Güvenilirlik ve performans

Gerçek Zamanlı Veritabanı Bulut Firestore
Gerçek Zamanlı Veritabanı bölgesel bir çözümdür.
  • Bölgesel konfigürasyonlarda mevcuttur. Veritabanları, bir bölge içindeki bölgesel kullanılabilirlik ile sınırlıdır.
  • Son derece düşük gecikme, sık durum senkronizasyonu için ideal seçenek.
Hizmet Düzeyi Sözleşmesi'nde Gerçek Zamanlı Veritabanı performansı ve güvenilirlik özellikleri hakkında daha fazla bilgi edinin.
Cloud Firestore, otomatik olarak ölçeklenen bölgesel ve çok bölgeli bir çözümdür.
  • Verilerinizi farklı bölgelerdeki birden fazla veri merkezinde barındırarak küresel ölçeklenebilirlik ve güçlü güvenilirlik sağlar.
  • Tüm dünyada bölgesel veya çok bölgeli konfigürasyonlarda mevcuttur.
Hizmet Düzeyi Sözleşmesi'nde Cloud Firestore performansı ve güvenilirlik özellikleri hakkında daha fazla bilgi edinin.

ölçeklenebilirlik

Gerçek Zamanlı Veritabanı Bulut Firestore
Ölçeklendirme parçalama gerektirir.
  • Tek bir veritabanında yaklaşık 200.000 eşzamanlı bağlantıya ve 1.000 yazma/saniyeye ölçeklendirin. Bunun ötesine ölçeklendirme, verilerinizin birden çok veritabanında parçalanmasını gerektirir.
  • Bireysel veri parçalarına yazma hızlarında yerel sınırlama yoktur.
Ölçeklendirme otomatiktir.
  • Tamamen otomatik olarak ölçeklenir. Şu anda, ölçeklendirme limitleri yaklaşık 1 milyon eşzamanlı bağlantı ve saniyede 10.000 yazmadır. İleride bu limitleri artırmayı planlıyoruz.
  • Tek tek belgelere veya dizinlere yazma hızlarında sınırlamalar vardır.

Güvenlik

Gerçek Zamanlı Veritabanı Bulut Firestore
Yetkilendirme ve doğrulamayı ayıran basamaklı kural dili. Yetkilendirme ve doğrulamayı birleştiren kademeli olmayan kurallar.
  • Cloud Firestore Güvenlik Kuralları tarafından korunan mobil SDK'lardan okur ve yazar.
  • Kimlik ve Erişim Yönetimi (IAM) tarafından korunan sunucu SDK'larından okur ve yazar.
  • Bir joker karakter kullanmadığınız sürece kurallar art arda sıralanmaz.
  • Kurallar sorguları kısıtlayabilir: Bir sorgunun sonuçları, kullanıcının erişimi olmayan verileri içeriyorsa sorgunun tamamı başarısız olur.

Fiyatlandırma

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

Gerçek Zamanlı Veritabanı Bulut Firestore
Yalnızca bant genişliği ve depolama için ücret alır, ancak daha yüksek bir oranda.

Gerçek Zamanlı Veritabanı fiyatlandırma planları hakkında daha fazlasını okuyun.

Öncelikli olarak veri tabanınızda gerçekleştirilen işlemler (okuma, yazma, silme) ve daha düşük oranda bant genişliği ve depolama üzerinden ücretlendirilir.

Cloud Firestore, memnun olduğunuz maliyetleri aşmamanızı sağlamak için App Engine projeleri için günlük harcama limitlerini destekler.

Cloud Firestore 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 veri tabanı da aynı tür verileri depolayabilir ve istemci kitaplıkları benzer şekilde çalışır. Uygulamanızda her iki veritabanını da kullanmaya karar verirseniz, yukarıda özetlenen farklılıkları aklınızda bulundurun.

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

Bir veritabanı seçmeye hazır mısınız?

Umarız bu karşılaştırma bir Firebase veritabanı çözümüne karar vermenize yardımcı olmuştur. Artık Firebase projelerinize nasıl veritabanı ekleyeceğinizi öğrenebilirsiniz.