Google Cloud Datastore a Firebase [zamknięte]

93

Google zapewnia dwie usługi przechowywania danych w chmurze: Google Cloud Datastore i Firebase (po jego przejęciu). Chociaż przedstawiono typowe scenariusze użytkowania, aby umożliwić programiście dokonanie wyboru między różnymi usługami dostarczanymi przez platformę chmury Google, nie ma wzmianki o tym, jak Firebase pasuje do obrazu w jego obecnym / przyszłym rozwoju.

Czy ktoś może sobie wyobrazić wgląd w tę sprawę i przedstawić typowe przypadki użycia Google Cloud Datastore i Firebase?

Czebyr
źródło
2
Mamy również więcej informacji tutaj: cloud.google.com/storage-options
Dan McGrath
Firebase nie jest samą usługą przechowywania danych, ponieważ obejmuje pakiet produktów, w tym Cloud Firestore i Realtime Database dla bazy danych i Cloud Storage dla plików.
Andy Fusniak
@DanMcGrath Datastore nie pojawia się nigdzie w udostępnionym przez Ciebie łączu. A może coś mi brakuje?
Ronnie Royston
@Ron, od czasu opublikowania zaktualizowanej wersji Datastore zmieniono nazwę na Cloud Firestore na GA, więc używamy tylko nowej nazwy.
Dan McGrath
@DanMcGrath od razu. ... adres URL cloud.google.com/datastore nadal reklamuje przestarzały system, więc nie byłem pewien, o co chodzi. Dzięki.
Ronnie Royston

Odpowiedzi:

62

Oba produkty mają swoje mocne i słabe strony. Oto kilka powodów, dla których warto użyć jednego lub drugiego:

Korzystaj z Firebase, jeśli chcesz:

  • Baza danych bez własnego zaplecza : pakiety SDK Firebase umożliwiają pisanie aplikacji mobilnych i internetowych bez konieczności uruchamiania własnego zaplecza. Możesz czytać i zapisywać w bazie danych Firebase bezpośrednio ze swojej aplikacji, bez konieczności stosowania kodu serwera. Model bezpieczeństwa bazy danych umożliwia precyzyjną kontrolę dostępu bez serwera opartego na użytkownikach.
  • Dane w czasie rzeczywistym : Firebase umożliwia odsłuchiwanie zmian danych, co bardzo ułatwia pisanie niektórych rodzajów aplikacji. Świetnym przykładem jest wspólny edytor tekstu .
  • Prosty model danych : baza danych Firebase przechowuje JSON. Jeśli znasz JSON, znasz model danych Firebase.
  • Aby skorzystać z innych funkcji Firebase : na przykład Firebase zapewnia zarządzanie użytkownikami i uwierzytelnianie, które doskonale współpracują z bazą danych.

Skorzystaj z Datastore, jeśli chcesz:

jonnydee
źródło
1
Wydaje się, że wyrażenie „Baza danych bez własnego zaplecza” ma zastosowanie do obu usług. Datastore jest częścią Google Cloud, nie utrzymujesz własnych serwerów. Jeśli chodzi o logikę zaplecza, większość bibliotek klienckich Datastore jest oparta na serwerze, jednak możliwe jest wykorzystanie jego interfejsów API REST dla aplikacji mobilnych i internetowych. Możesz nawet posunąć się do uruchomienia biblioteki klienta Node.js przez browserify, konwertując ją na bibliotekę internetową.
TheAddonDepot
1
@DimuDesigns firebase DB ma reguły bezpieczeństwa, które chronią aktualizację użytkownika przed zakłócaniem danych. Na przykład usuń dane innych osób. Oznacza to, że baza danych bez zaplecza, nie potrzebujesz zaplecza do weryfikacji poprawności danych wejściowych, podczas gdy nie można pozwolić klientowi zrobić tego samego z gdatastore
Thaina
@DimuDesigns lub jonnydee: Czy Datastore ma wszystkie funkcje dostępne w Firebase oraz dwie wymienione dla Datastore? Albo przynajmniej odpowiedz, czy Datastore również udostępnia dane w czasie rzeczywistym w taki sam sposób, jak Firebase?
Bryan Dimas
1
@BryanDimas Datastore nie obsługuje natywnie wyzwalaczy zdarzeń w czasie rzeczywistym w przypadku zmiany danych. Istnieje jednak funkcja o nazwie „Kolejkowanie zadań transakcyjnych”. To nie jest w czasie rzeczywistym, ale jest to realna opcja. Mówiono jednak o wdrożeniu tej funkcji natywnie: issuetracker.google.com/issues/62959790
TheAddonDepot
1
@BryanDimas Oto link do dokumentacji dotyczącej „Kolejkowania zadań transakcyjnych”: cloud.google.com/appengine/docs/standard/python/ndb/ ...
TheAddonDepot
14

Można powiedzieć, że firebase jest przeznaczony specjalnie dla platformy mobilnej. Chmura Google była rozwiązaniem dla przedsiębiorstw.

Firebase opracował swoje pakiety SDK z myślą o systemach Android, IOS, Web i Unity (silniku gier). Nie potrzebujesz serwera WWW do interakcji z jego komponentami. Jego sdks są do tego wystarczające. Bez kosztów serwera WWW lub serwerów aplikacji. Ma bazę danych czasu rzeczywistego, możesz słuchać i jest niesamowicie szybki.

Posiada usługę przesyłania wiadomości w chmurze, uwierzytelnianie, funkcje Lambda i pamięć masową (jak każda inna chmura). Jego dokumentacja jest bardzo zwięzła. Nie musisz więc przeglądać tysięcy stron, aby zrozumieć typową usługę w chmurze, taką jak AWS lub Google Cloud. Zintegrowanie gry z AWS zajęło mi miesiąc, ale integracja z firebase zajęła mi zaledwie tydzień.

sn.anurag
źródło
8

Aktualizacja z października 2017 r. (Firebase udostępniony Cloud Firestore):

Należy zauważyć, że w ostatnim wydaniu Cloud Firestore (beta od października 2017 r.) Zalety Datastore nad „ Firebase ”, o których wspomniał johnydee, są teraz przestarzałe, jeśli używasz produktu Firestore, ponieważ ma on potężne zapytania i jest wysoce skalowalny .

Te produkty (Datastore i Firestore) mają wspólne korzenie i tylko jeden może być używany w tym samym projekcie.

Odpowiedź Johny'ego nadal obowiązuje, jeśli porównasz bazę danych czasu rzeczywistego Firebase z Datastore.

Kqtr
źródło
Czy Firestore obsługuje elastyczną obsługę indeksów zygzag-merge-join, która jest dostępna w datastore? Jak jeden opisany na cloud.google.com/appengine/articles/indexselection
user482594
7

To pytanie zostało automatycznie rozwiązane w najnowszej wersji Firebase uruchomionej w Google IO 2016, w której wprowadzono integrację na dużą skalę między Firebase i Google Cloud Platform.

Zobacz https://firebase.googleblog.com/2016/05/firebase-expands-to-become-unified-app-platform.html

Wszystkie usługi Google Cloud Platform są teraz dostępne i są znacznie prostsze dzięki Firebase. Sposób uzyskiwania dostępu do Bazy danych czasu rzeczywistego przez Firebase został również rozszerzony na Google Cloud Storage. Wiele interfejsów API po stronie klienta Google Cloud, takich jak Google Cloud Messaging, zostało przeniesionych do marki Firebase.

Firebase jest wyraźnie zamierzonym przez Google sposobem na dostęp po stronie klienta do infrastruktury Google Cloud Services.

Czebyr
źródło
2
Google Cloud Datastore to solidna, skalowalna baza danych, Firebase jest przeznaczona tylko dla aplikacji na małą skalę (<10 tys. Połączeń) i ma regularne przestoje migracji fragmentów
Mark Essel