MongoDB ve Firebase [kapalı]


149

Firebase'i MongoDB'ye göre kullanmanın bazı nicel avantajları nelerdir? (görüşler değil)

Firebase'in kendi API'sı ile bulut tabanlı bir hizmet olduğunu biliyorum, ancak Mongo'nun uzun vadede bana daha fazla kontrol sağlayabileceğini hissediyorum.


53
@David Görüş temelli değildir. OP edilir değil (görüş temelli edileceği) daha iyi olduğunu soran ama mongodb üzerinde FB'nin (varsa) faydaların istiyor.
Görüşlerimiz

@İtsclarke bunu okumak için tavsiye ederim: crisp.chat/blog/…
Junior Mayhé

2
@KirillSlatin Bu soru şimdi kapatılmıştır. Bunun gibi soruların neden Gorilla vs Shark blog gönderisinde beğenilmediğini okuyabilirsiniz . İken değil yapıcı nedeni bu blog belirtilen hala çok geniş olduğunu, artık mevcut değil (bir cevap tüm farklılıkları numaralandırılırken sıkıcı olduğu), çok zaman tabanlı genellikle iyi değil (özellikleri bu değişiklik bu eklenebilir) ve bu site için uygun.
Erik A

Yanıtlar:


123
  • Firebase , geriye dönük bağlantıya sahip gerçek zamanlı bir motordur. Yani, müşterilerin belirli verilerdeki etkinliklere abone olduğu ve sunucunun müşterileri değişiklikler hakkında aktif olarak bilgilendirdiği bir platformlar arası uygulama oluşturabilirsiniz
  • Veri katmanı sizin için barındırılıyor. Yüksek oranda ölçeklenebilir olduğunu unutmayın. Güzel bir kickstarter çözümü. Kimlik doğrulama yönetimi dahil
  • Coğrafi yangın. Gerçek zamanlı coğrafi koordinatlar çözümü.
  • Firebase'in belirgin dezavantajları şunlardır:
    • Büyümeye başlar başlamaz bunun bedelini ödemek zorundasınız.
    • Veri katmanını barındıramazsınız (verilere sahip olmak kritikse veya bazı ayrılmış alt ağlar için bir uygulama geliştiriyorsanız)

EDIT: İşte uygulamanızda Firebase Node.js + MongoDb ile değiştirmek için güzel bir makale . Kendi başına ne kadar iş yapmanız gerektiğini gösterir ve IMHO'yu, bir girişimin (küçük uygulama) Firebase ile neden başlaması (istemcilere gerçek zamanlı güncellemeler gerekiyorsa) ve MongoDb ile devam etmesi (her durumda -yazılı çözüm) proje gelişmeye devam ederse

DÜZENLEME 2: Google Firebase tarafından satın alındıktan sonra , temel özelliklerinin üstünde kendi başınıza oluşturmaya çalışacağınız çeşitli avantajlar sunuyor:


39

Elmalar ve Portakallar. Firebase, kimlik yönetimi, gerçek zamanlı veri görünümleri ve belge veritabanı içeren bir Hizmet Olarak Arka Uçtur. Bulutta çalışır.

MongoDB ise zengin bir sorgu dili olan tam teşekküllü bir veritabanıdır. Prensip olarak kendi makinenizde çalışır, ancak bulut sağlayıcıları vardır.

Eğer veritabanı bileşeni arıyorsanız sadece MongoDB çok daha olgun ve zengin özelliklere sahip.


31

Firebase gerçek zamanlı güncellemeler için tasarlanmıştır. Açısal ile kolayca entegre olur. Her ikisi de NoSQL veritabanlarıdır. MongoDB bunu Angular through Socket.io entegrasyonu ile de yapabilir. Meteor.js ayrıca, gerçek zamanlı güncellemeler için açık soket bağlantılı MongoDB'yi kullanır.

MongoDB yerel olarak çalıştırılabilir veya birçok farklı bulut tabanlı sağlayıcıda barındırılabilir. Firebase, bence küçük uygulamalar için harika, çok hızlı bir şekilde çalışmaya başlıyor. MongoDB daha sağlam daha büyük uygulamalar için idealdir, gerçek zamanlı entegrasyon mümkündür, ancak biraz daha fazla iş gerektirir.


23

Firebase'i kullandıktan sonra önemli miktarda bir şey bulmaya geldim.

Büyük, gerçek zamanlı uygulamalar için kullanmayı planlıyorsanız, en iyi seçim değildir. Kötü bir hata işleme sistemi ve sınırlamalar da dahil olmak üzere kendi geniş bir dizi sorunu vardır. Firebase'i ve karışıklıklarını anlamaya çalışmak için önemli zaman harcayacaksınız. Bir projenin kontrolden çıkmış monolitik bir şey haline gelmesi de oldukça kolaydır. MongoDB, büyük bir uygulama için bir arka uç olduğu sürece çok daha iyi bir seçimdir.

Ancak, küçük bir uygulama yapmanız veya bir şeyi hızlı bir şekilde prototiplemeniz gerekiyorsa, Firebase mükemmel bir seçimdir. Yere koşmak için inanılmaz derecede kolay bir yol olacak.


22

Bu soruyu Firebase'in Angular kütüphanesi AngularFire açısından cevaplayacağım.

  1. Tl; dr: süper güçler. :-)

  2. AngularFire'ın üç yönlü veri bağlaması. Açısal görünüm ve $ kapsamını, yani kullanıcılarınızın görünümde yaptıklarını yerel değişkenlerde otomatik olarak günceller ve JavaScript'iniz yerel bir değişkeni güncellediğinde görünüm otomatik olarak güncellenir. Firebase ile bulut veritabanı da otomatik olarak güncellenir. $ Http.get veya $ http.put istekleri yazmanıza gerek yoktur, veriler güncellenir.

  3. Beş yönlü veri bağlama ve yedi yönlü, dokuz yönlü vb. AngularFire kullanarak tic-tac-toe oyunu yaptım. İki oyuncu birlikte oynayabilir, iki görünüm iki dolar kapsamını ve bulut veritabanını günceller. Hepsi bir Firebase veritabanını paylaşan üç veya daha fazla oyuncu ile oyun yapabilirsiniz.

  4. AngularFire'ın OAuth2 kütüphanesi Facebook, GitHub, Google, Twitter, belirteçler ve şifrelerle yetkilendirmeyi kolaylaştırır.

  5. Çift güvenlik. Yetkilendirme gerektirecek Açısal rotalarınızı ayarlayabilir ve Firebase'de kimlerin veri okuyabileceği ve yazabileceği konusunda kurallar ayarlayabilirsiniz.

  6. Arka uç yok. Node ve Express ile sunucu yapmanız gerekmez. Kendi sunucunuzu çalıştırmak çok iş olabilir, güvenlik hakkında bilgi gerektirir, sunucu çökerse birinin bir şey yapmasını gerektirir vb.

  7. Hızlı. Sunucunuz San Francisco'daysa ve istemci San Jose'daysa, iyi. Ancak Bangalore'deki bir istemci için sunucunuza bağlanmak daha yavaş olacaktır. Firebase her yerde hızlı bağlantılar için dünya çapında konuşlandırılmıştır.


Fireloop nedir? Bu, ateş tabanıyla dinlenme API'si yazmanın bir yolu mu?
AshishSober

Aslında ben angularfire şaşırtıcı olduğunu düşünüyorum, u almak ve kendi veritabanı sistemi ile kullanmak için üzerinden geçmek herhangi bir yolu var mı ?, bu durumda Mongo ile, bu yüzden u üç veri-yol bağlama kullanabilirsiniz ve şaşırtıcı olurdu ve ayrıca değerlerinizi anında güncelleyebilmek için
Kross

Yorumunuzun son bölümünü beğendim: "Firebase her yerde hızlı bağlantılar için dünyanın her yerine dağıtılıyor."
Lester

13

Deneyimlerime göre, tüm bu özellikler zaten iyi entegre olduğundan, kullanıcı yönetimi, veritabanı, mesajlaşma uygulaması yapmaya çalışıyorsanız Firebase ile çalışmak büyük bir avantajdır.

Diğerlerinin söylediği gibi, sadece veritabanı / sorgulama yönüne odaklanmışsanız, mongo'ya sadık kalın.


13

Firebase bir dizi özelliktir.

  • Gerçek Zamanlı Veritabanı
  • Barındırma
  • Kimlik Doğrulama
  • Depolama
  • Bulut Mesajlaşma
  • Uzaktan Yapılandırma
  • Test Laboratuvarı
  • Çökme Raporlaması
  • Bildirimler
  • Uygulama Dizine Ekleme
  • Dinamik Bağlantılar
  • Davet etmek
  • AdWords
  • AdMob

Firebase Gerçek Zamanlı Veritabanını Mongo DB ile karşılaştırmaya çalıştığınıza inanıyorum. Firebase Gerçek Zamanlı Veritabanı, verileri JSON biçiminde depolar ve verilerin tüm güncelleştirmeleri ile verileri dinleyen tüm istemcilere eşitler. Sizi herhangi bir veritabanını kurmak ve ölçeklemek için gereken tüm karmaşıklıktan soyutlar. Verilerin toplanmasının gerektiği çok karmaşık senaryoların bulunduğu firebase'i tavsiye etmeyeceğim. (SUM / AVERAGE tür şeyler gerektiren sorgular). Bu son zamanlarda Firebase işlevleri kullanılarak gerçekleştirilebilir. Firebase'deki verilerin modellenmesi zordur. Ama anında başlamanızı sağlamanın en iyi yolu budur. MongoDB bir veritabanıdır. Bu size birçok güçlü özellik sunar. Ancak MongoDB herhangi bir platforma kurulduğunda kendiniz yönetmeniz gerekir.

Firebase veya MongoDB (veya herhangi bir DB) arasında seçim yapmaya çalıştığınızda. Aşağıdakileri cevaplamaya çalışıyorum.

  1. Yürütülen birçok toplama sorgusu var mı (Raporlama aracı veya BI aracı gibi). Evet ise Firebase için gitmeyin
  2. Çok işlem yapmam gerekiyor mu? (Evet ise o zaman ben firebase ile gitmek istemiyorum) (Işlemler fonksiyonları girdikten sonra olsa biraz kolay ama aynı zamanda bir sürü işlem sürdürülmesi gerekiyorsa bu da bir yüktür)
  3. İşleri çalıştırmak ve çalıştırmak için hangi zaman çizelgesine ihtiyacım var. (Firebase'in kurulumu ve entegrasyonu çok kolaydır).
  4. DB ölçeklendirme ve DB ile ilgili şeyler ateş sorun uzmanlık var mı. (Firebase daha çok SAAS'a benzer, bu nedenle ölçeklenebilirlik konusunda endişelenmenize gerek yok)

13

Firebase, gerçek zamanlı değişiklik yansıması, kimlik doğrulama mekanizmasının kolay entegrasyonu ve hızlı web geliştirme için diğer birçok yerleşik özellik gibi bazı iyi özellikler sunar. Firebase, Web geliştirmeyi gerçekten hiç bu kadar kolay olmamış hale getiriyor. Firebase veritabanı MongoDB'nin bir çataldır .

Firebase'i MongoDB'ye göre kullanmanın avantajı nedir?

Sen yararlanabilirsiniz Firebase tüm yerleşik özellikler MongoDB üzerinde.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.