Dodaj Firebase do projektu aplikacji na Androida, jeśli nie korzystasz w nim jeszcze z tej usługi.
Tworzenie bazy danych
W konsoli Firebase kliknij Bazy danych i pamięć masowa > Baza danych czasu rzeczywistego.
Kliknij Utwórz bazę danych.
Wybierz tryb początkowy dla urządzenia Firebase Security Rules:
- Tryb testowy
Dobry sposób na rozpoczęcie korzystania z bibliotek klienta mobilnego i internetowego, ale umożliwia każdemu odczytywanie i zastępowanie Twoich danych. Po zakończeniu testów zapoznaj się z sekcją Reguły Bazy danych czasu rzeczywistego Firebase.
Aby rozpocząć korzystanie z pakietu SDK dla aplikacji internetowych, na urządzenia Apple lub z Android SDK, wybierz tryb testowy.
- Tryb blokady
Odrzucanie wszystkich odczytów i zapisów z klientów mobilnych i internetowych. Uwierzytelnione serwery aplikacji nadal mogą uzyskiwać dostęp do bazy danych.
Wybierz lokalizację bazy danych.
W zależności od lokalizacji bazy danych adres URL nowej bazy danych będzie miał jedną z tych form:
(w przypadku baz danych w:DATABASE_NAME.firebaseio.comus-central1) (w przypadku baz danych we wszystkich innych lokalizacjach)DATABASE_NAME.REGION.firebasedatabase.app
Kliknij Gotowe.
Gdy włączysz Realtime Database, interfejs API zostanie też włączony w Menedżerze interfejsów Cloud API.
Dodaj pakiet SDK Realtime Database do aplikacji
W pliku Gradle modułu (na poziomie aplikacji) (zwykle<project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj zależność z biblioteką Realtime Database na Androida. Zalecamy używanie Firebase Android BoM do kontrolowania obsługi wersji biblioteki.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.1")) // Add the dependency for the Realtime Database library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-database") }
Gdy korzystasz z Firebase Android BoM, aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.
(Alternatywa) Dodaj zależności biblioteki Firebase bez używania BoM
Jeśli nie zdecydujesz się na użycie Firebase BoM, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Jeśli w aplikacji używasz kilku bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek, co zapewni zgodność wszystkich wersji.
dependencies { // Add the dependency for the Realtime Database library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-database:23.0.0") }
Skonfiguruj funkcję Realtime Database Security Rules
Realtime Database udostępnia deklaratywny język reguł, który pozwala określić, jak dane powinny być ustrukturyzowane i indeksowane oraz kiedy można je odczytywać i zapisywać.
Zapisywanie w bazie danych
Pobierz instancję bazy danych za pomocą getInstance() i odwołaj się do lokalizacji, w której chcesz zapisać dane.
Kotlin
// Write a message to the database val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!")
Java
// Write a message to the database FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message"); myRef.setValue("Hello, World!");
W ten sposób możesz zapisywać w bazie danych różne typy danych, w tym obiekty Javy. Gdy zapiszesz obiekt, odpowiedzi z metod pobierających zostaną zapisane jako elementy podrzędne tej lokalizacji.
Odczytywanie danych z bazy danych
Aby dane aplikacji były aktualizowane w czasie rzeczywistym, dodaj ValueEventListener do utworzonego właśnie odwołania.
Metoda onDataChange() w tej klasie jest wywoływana raz, gdy detektor jest dołączany, i ponownie za każdym razem, gdy dane się zmieniają, w tym dane elementów podrzędnych.
Kotlin
// Read from the database myRef.addValueEventListener(object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. val value = dataSnapshot.getValue<String>() Log.d(TAG, "Value is: $value") } override fun onCancelled(error: DatabaseError) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()) } })
Java
// Read from the database myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { // This method is called once with the initial value and again // whenever data at this location is updated. String value = dataSnapshot.getValue(String.class); Log.d(TAG, "Value is: " + value); } @Override public void onCancelled(@NonNull DatabaseError error) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()); } });
Opcjonalnie: skonfiguruj ProGuard
Jeśli używasz Firebase Realtime Database w aplikacji razem z ProGuard, musisz wziąć pod uwagę, jak obiekty modelu będą serializowane i deserializowane po zaciemnieniu kodu. Jeśli do odczytu i zapisu danych używasz DataSnapshot.getValue(Class) lub DatabaseReference.setValue(Object), musisz dodać reguły do pliku proguard-rules.pro:
# Add this global rule
-keepattributes Signature
# This rule will properly ProGuard all the model classes in
# the package com.yourcompany.models.
# Modify this rule to fit the structure of your app.
-keepclassmembers class com.yourcompany.models.** {
*;
}
Aby uzyskać pomoc w przypadku pytań lub problemów związanych z ProGuard, odwiedź fora społeczności Guardsquare i skorzystaj z pomocy eksperta.
Przygotowanie do uruchomienia
Przed opublikowaniem aplikacji zalecamy zapoznanie się z naszą listą kontrolną, aby upewnić się, że aplikacja jest gotowa do udostępnienia.
Pamiętaj, aby włączyć App Check, aby mieć pewność, że tylko Twoje aplikacje mają dostęp do baz danych.
Następne kroki
- Dowiedz się, jak uporządkować dane dla Realtime Database
- skalować dane w wielu instancjach bazy danych,
- Odczytywanie i zapisywanie danych.
- Wyświetl bazę danych w konsoli Firebase.