Firebase oferuje 2 dostępne dla klientów bazy danych dokumentów w chmurze. Nowym klientom zalecamy rozpoczęcie od Cloud Firestore:
- Cloud Firestore to zalecana baza danych dokumentów klasy korporacyjnej zgodna z formatem JSON, której ufa ponad 600 tys. deweloperów. Nadaje się do aplikacji z rozbudowanymi modelami danych, które wymagają możliwości wykonywania zapytań, skalowalności i wysokiej dostępności. Umożliwia też synchronizację klienta z niskim opóźnieniem i dostęp do danych offline. 
- Realtime Database to klasyczna baza danych Firebase JSON. Nadaje się do aplikacji z prostymi modelami danych, które wymagają prostych wyszukiwań i synchronizacji o niskim opóźnieniu z ograniczoną skalowalnością. 
Jakie inne ważne kwestie należy wziąć pod uwagę?
Po rozważeniu powyższych kwestii możesz wybrać bazę danych. Jeśli nadal rozważasz zalety i wady, w tej sekcji znajdziesz inne różnice między Cloud Firestore a Realtime Database.
Model danych
Zarówno Realtime Database, jak i Cloud Firestore to bazy danych NoSQL.
| Cloud Firestore | [ PREFERRED ] | Realtime Database | 
|---|---|---|
| Przechowuje dane jako kolekcje dokumentów. 
 Dowiedz się więcej o Cloud Firestore modelu danych. | Przechowuje dane w postaci jednego dużego drzewa JSON. 
 Dowiedz się więcej o Realtime Database modelu danych. | |
Pomoc w czasie rzeczywistym i offline
Obie usługi mają pakiety SDK zoptymalizowane pod kątem urządzeń mobilnych i działające w czasie rzeczywistym oraz obsługują lokalne przechowywanie danych w aplikacjach działających w trybie offline.
| Cloud Firestore | [ PREFERRED ] | Realtime Database | 
|---|---|---|
| Obsługa offline na urządzeniach Apple, Android i w klientach internetowych. | Obsługa offline klientów Apple i Androida. | |
Obecność
Warto wiedzieć, kiedy klient jest online lub offline. FirebaseRealtime Database może rejestrować stan połączenia klienta i przesyłać aktualizacje za każdym razem, gdy stan połączenia klienta się zmieni.
| Cloud Firestore | [ PREFERRED ] | Realtime Database | 
|---|---|---|
| Nie jest obsługiwane natywnie. Możesz rozszerzyć obsługę obecności w Realtime Database, synchronizując Cloud Firestore i Realtime Database za pomocą Cloud Functions. Więcej informacji znajdziesz w artykule Tworzenie obecności w Cloud Firestore. | Obsługuje obecność. | |
Wysyłanie zapytań
Pobieraj, sortuj i filtruj dane z obu baz danych za pomocą zapytań.
| Cloud Firestore | [ PREFERRED ] | Realtime Database | 
|---|---|---|
| Indeksowane zapytania z sortowaniem i filtrowaniem złożonym. 
 | Zaawansowane zapytania z ograniczonymifunkcjami sortowania i filtrowania. 
 | |
Zapisy i transakcje
| Cloud Firestore | [ PREFERRED ] | Realtime Database | 
|---|---|---|
| Zaawansowane operacje zapisu i transakcji. 
 | Podstawowe operacje zapisu i transakcji. 
 | |
Niezawodność i wydajność
| Cloud Firestore | [ PREFERRED ] | Realtime Database | 
|---|---|---|
| Cloud Firestore to regionalne i obejmujące wiele regionów rozwiązanie, które automatycznie dostosowuje skalę. 
 | Realtime Database to rozwiązanie regionalne. 
 | |
Czas działania
| Cloud Firestore | [ PREFERRED ] | Realtime Database | 
|---|---|---|
| Bardzo wysoka wydajność w zakresie czasu działania. 
 | Wysoka wydajność i dostępność 
 | |
Skalowalność
| Cloud Firestore | [ PREFERRED ] | Realtime Database | 
|---|---|---|
| Skalowanie jest automatyczne. 
 | Skalowanie wymaga dzielenia na fragmenty. 
 | |
Bezpieczeństwo
| Cloud Firestore | [ PREFERRED ] | Realtime Database | 
|---|---|---|
| Reguły niekaskadowe, które łączą autoryzację i weryfikację. 
 | Język reguł kaskadowych, który rozdziela autoryzację i weryfikację. 
 | |
Ceny
Oba rozwiązania są dostępne w ramach abonamentów Spark i Blaze.
| Cloud Firestore | [ PREFERRED ] | Realtime Database | 
|---|---|---|
| Opłaty są naliczane głównie za operacje wykonywane w bazie danych (odczyt, zapis, usuwanie), a w mniejszym stopniu za przepustowość i miejsce na dane. Cloud Firestore obsługuje dzienne limity wydatków w przypadku App Engine projektów, aby mieć pewność, że nie przekroczysz akceptowalnych kosztów. Dowiedz się więcej o abonamentach Cloud Firestore. | Opłaty są naliczane tylko za przepustowość i miejsce na dane, ale według wyższej stawki. Dowiedz się więcej o abonamentach Realtime Database. | |
Korzystanie z Cloud Firestore i Realtime Database
Możesz używać obu baz danych w ramach tej samej aplikacji lub projektu Firebase. Obie bazy danych NoSQL mogą przechowywać te same typy danych, a biblioteki klienta działają w podobny sposób. Jeśli zdecydujesz się używać w aplikacji obu baz danych, pamiętaj o wcześniej opisanych różnicach.
Dowiedz się więcej o funkcjach dostępnych w Realtime Database i Cloud Firestore.
Chcesz wybrać bazę danych?
Mamy nadzieję, że to porównanie pomoże Ci wybrać rozwiązanie bazy danych Firebase. Teraz możesz dowiedzieć się, jak dodać bazę danych do projektów Firebase.
- Więcej informacji o Cloud Firestore znajdziesz w artykule Pierwsze kroki z Cloud Firestore.
- W przypadku Realtime Database przeczytaj temat Pierwsze kroki dotyczący Twojej platformy: Apple, Android, C++, Unity, Web lub REST.