Firebase oferuje dwie działające w chmurze bazy danych dokumentów, do których klienci mają dostęp. Nowym klientom zalecamy rozpoczęcie od Cloud Firestore:
Cloud Firestore to zalecana baza danych dokumentów zgodna z JSON klasy korporacyjnej, której zaufało ponad 600 tysięcy 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. Zapewnia też synchronizację klienta z niskim opóźnieniem i dostęp do danych offline.
Realtime Database to klasyczna baza danych JSON Firebase. Jest odpowiednia dla aplikacji z prostymi modelami danych, które wymagają prostych wyszukiwań i synchronizacji z krótkim czasem oczekiwania przy ograniczonej skalowalności.
Jakie inne ważne kwestie należy wziąć pod uwagę?
Po przeanalizowaniu najważniejszych 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 i Realtime Database.
Model danych
Zarówno Realtime Database, jak i Cloud Firestore to bazy danych NoSQL.
| Cloud Firestore | [ PREFEROWANE ] | Realtime Database |
|---|---|---|
Przechowuje dane jako kolekcje dokumentów.
Dowiedz się więcej o modelu danych Cloud Firestore. |
Przechowuje dane jako jedno duże drzewo JSON.
Dowiedz się więcej o modelu danych Realtime Database. |
|
Obsługa w czasie rzeczywistym i offline
Obie mają pakiety SDK działające w czasie rzeczywistym i zoptymalizowane pod kątem urządzeń mobilnych, a także obsługują lokalne przechowywanie danych na potrzeby aplikacji działających w trybie offline.
| Cloud Firestore | [ PREFEROWANE ] | Realtime Database |
|---|---|---|
| Obsługa offline na urządzeniach Apple i z Androidem oraz w klientach internetowych. | Obsługa offline na urządzeniach Apple i z Androidem. | |
Obecność
Warto wiedzieć, kiedy klient jest online lub offline. Firebase Realtime Database może rejestrować stan połączenia klienta i udostępniać aktualizacje za każdym razem, gdy stan połączenia klienta ulegnie zmianie.
| Cloud Firestore | [ PREFEROWANE ] | Realtime Database |
|---|---|---|
| Nie jest obsługiwany natywnie. Możesz rozszerzyć obsługę obecności w Realtime Database, synchronizując Cloud Firestore i Realtime Database za pomocą Cloud Functions. Zobacz Tworzenie obecności w Cloud Firestore. | Obsługiwana obecność. | |
Wykonywanie zapytań
pobierać, sortować i filtrować dane z obu baz danych za pomocą zapytań;
| Cloud Firestore | [ PREFEROWANE ] | Realtime Database |
|---|---|---|
Zapytania indeksowane ze złożonym sortowaniem i filtrowaniem.
|
Zapytania głębokie z ograniczonymi funkcjami sortowania i filtrowania.
|
|
Zapisy i transakcje
| Cloud Firestore | [ PREFEROWANE ] | Realtime Database |
|---|---|---|
Zaawansowane operacje zapisu i transakcje.
|
Podstawowe operacje zapisu i transakcji.
|
|
Niezawodność i wydajność
| Cloud Firestore | [ PREFEROWANE ] | Realtime Database |
|---|---|---|
Cloud Firestore to rozwiązanie regionalne i obejmujące wiele regionów, które skaluje się automatycznie.
|
Realtime Database to rozwiązanie regionalne.
|
|
Czas działania
| Cloud Firestore | [ PREFEROWANE ] | Realtime Database |
|---|---|---|
Bardzo wysoki czas działania.
|
Wysoka dostępność.
|
|
Skalowalność
| Cloud Firestore | [ PREFEROWANE ] | Realtime Database |
|---|---|---|
Skalowanie jest automatyczne.
|
Skalowanie wymaga fragmentowania.
|
|
Bezpieczeństwo
| Cloud Firestore | [ PREFEROWANE ] | Realtime Database |
|---|---|---|
Reguły niekaskadowe, które łączą autoryzację i weryfikację.
|
Kaskadowy język reguł, który oddziela autoryzację od weryfikacji.
|
|
Ceny
Oba rozwiązania są dostępne w abonamentach Spark i Blaze.
| Cloud Firestore | [ PREFEROWANE ] | Realtime Database |
|---|---|---|
| Opłaty są naliczane głównie za operacje wykonywane w bazie danych (odczyt, zapis, usunięcie), a w mniejszym stopniu za przepustowość i miejsce na dane.
Cloud Firestore obsługuje miesięczne budżety i alerty, dzięki czemu nie wydasz więcej, niż chcesz. 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. |
|
Używaj zarówno Cloud Firestore, jak i Realtime Database
Możesz używać obu baz danych w tej samej aplikacji w Firebase lub projekcie. 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ć obu baz danych w aplikacji, pamiętaj o różnicach opisanych wcześniej.
Dowiedz się więcej o funkcjach dostępnych w Realtime Database i Cloud Firestore.
Chcesz wybrać bazę danych?
Mamy nadzieję, że to porównanie pomogło Ci wybrać rozwiązanie bazy danych Firebase. Teraz możesz dowiedzieć się, jak dodać bazę danych do projektów w Firebase.
- W przypadku Cloud Firestore zapoznaj się z artykułem Pierwsze kroki z Cloud Firestore.
- W przypadku Realtime Database przeczytaj temat Pierwsze kroki dotyczący Twojej platformy: Apple, Android, C++, Unity, Web lub REST.