Dodaj Firebase do swojego projektu na Androida, jeśli jeszcze go nie masz.
Utwórz bazę danych
Przejdź do sekcji Baza danych czasu rzeczywistego w konsoli Firebase. Pojawi się prośba o wybranie istniejącego projektu Firebase. Postępuj zgodnie z procedurą tworzenia bazy danych.
Wybierz tryb początkowy reguł zabezpieczeń Firebase:
- Tryb testowy
Świetnie nadaje się do pracy z bibliotekami klienta mobilnego i internetowego, ale pozwala każdemu na odczytywanie i zastępowanie danych. Po zakończeniu testów zapoznaj się z sekcją Omówienie reguł bazy danych czasu rzeczywistego Firebase.
Aby zacząć korzystać z pakietu SDK na komputery, Apple lub Androida, wybierz tryb testowy.
- Tryb blokady
Odrzuca wszystkie odczyty i zapisy z klientów mobilnych oraz internetowych. Uwierzytelnione serwery aplikacji nadal mogą uzyskać dostęp do Twojej 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 postaci:
(w przypadku baz danych w regionieDATABASE_NAME.firebaseio.com
us-central1
) (w przypadku baz danych we wszystkich innych lokalizacjach)DATABASE_NAME.REGION.firebasedatabase.app
Kliknij Gotowe.
Gdy włączysz Bazę danych czasu rzeczywistego, spowoduje to też włączenie interfejsu API w Menedżerze interfejsów Cloud API.
Dodaj do aplikacji pakiet SDK Bazy danych czasu rzeczywistego
W pliku Gradle na poziomie modułu (na poziomie aplikacji) (zwykle<project>/<app-module>/build.gradle.kts
lub <project>/<app-module>/build.gradle
) dodaj zależność z biblioteką Bazy danych czasu rzeczywistego na Androida. Do kontrolowania obsługi wersji biblioteki zalecamy używanie BOM Firebase na Androida.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.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") }
Dzięki wykorzystaniu BM od Firebase Android Twoja aplikacja zawsze będzie używała zgodnych wersji bibliotek Firebase na Androida.
(Alternatywnie) Dodaj zależności biblioteki Firebase bez użycia BoM.
Jeśli nie chcesz używać BoM Firebase, musisz określić każdą wersję biblioteki Firebase w wierszu zależności.
Pamiętaj, że jeśli w aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami biblioteki. Zapewni to 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:21.0.0") }
Konfigurowanie reguł zabezpieczeń bazy danych czasu rzeczywistego
Baza danych czasu rzeczywistego udostępnia deklaratywny język reguł, który pozwala określić strukturę danych, sposób ich indeksowania oraz czas ich odczytywania i zapisywania.
Zapisz w bazie danych
Pobierz instancję bazy danych za pomocą funkcji getInstance()
i odwołaj się do lokalizacji, w której chcesz zapisywać.
Kotlin+KTX
// 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żna zapisać w bazie danych różne typy danych, w tym obiekty Java. Gdy zapiszesz obiekt, odpowiedzi ze wszystkich metod pobierających zostaną zapisane jako elementy podrzędne tej lokalizacji.
Odczyt z Twojej bazy danych
Aby dane aplikacji były aktualizowane w czasie rzeczywistym, dodaj ValueEventListener
do utworzonego właśnie pliku referencyjnego.
Metoda onDataChange()
w tej klasie jest aktywowana raz po podłączeniu detektora i ponownie przy każdej zmianie danych, w tym w przypadku elementów podrzędnych.
Kotlin+KTX
// 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 w aplikacji Bazy danych czasu rzeczywistego Firebase razem z ProGuard, musisz się zastanowić, jak obiekty modelu będą zserializowane i deserializowane po zaciemnieniu kodu. Jeśli do odczytywania i zapisywania danych używasz funkcji 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 poproś o pomoc eksperta.
Przygotowanie do premiery
Zalecamy, by przed wprowadzeniem aplikacji na rynek sprawdzić jej listę kontrolną, by upewnić się, że jest gotowa do użycia.
Pamiętaj, by włączyć Sprawdzanie aplikacji, aby mieć pewność, że tylko aplikacje mają dostęp do baz danych.
Następne kroki
- Dowiedz się, jak porządkować dane na potrzeby bazy danych czasu rzeczywistego
- Skaluj dane w wielu instancjach bazy danych.
- Odczytywanie i zapisywanie danych.
- Wyświetl bazę danych w konsoli Firebase.