Jeśli jeszcze tego nie zrobiono, dodaj Firebase do projektu na Androida.
Utwórz bazę danych
Otwórz sekcję Realtime Database w konsoli Firebase. Pojawi się prośba o wybranie dotychczasowego projektu Firebase. Wykonaj proces tworzenia bazy danych.
Wybierz tryb początkowy dla Firebase Security Rules:
- Tryb testowy
Jest to dobre rozwiązanie na początek korzystania z bibliotek klienta mobilnego i internetowego, ale pozwala każdemu odczytywać i zapisywać Twoje dane. Po przetestowaniu zapoznaj się z sekcją Omówienie reguł Firebase Realtime Database.
.Aby zacząć korzystać z pakietu SDK do przeglądarki, Apple lub Androida, wybierz tryb testowy.
- Tryb blokady
Odrzuca wszystkie odczyty i zapisy z klientów mobilnych i internetowych. Twoje uwierzytelnione serwery aplikacji nadal mają 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 form:
(w przypadku baz danych w dodomenachDATABASE_NAME.firebaseio.com
us-central1
) (w przypadku baz danych w innych lokalizacjach)DATABASE_NAME.REGION.firebasedatabase.app
Kliknij Gotowe.
Włączenie Realtime Database powoduje również włączenie interfejsu API w Menedżerze interfejsów API w chmurze.
Dodaj do aplikacji pakiet SDK Realtime Database
W pliku Gradle (na poziomie modułu) 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 wersji biblioteki.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.6.0")) // 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 użyciu Firebase Android BoMaplikacja zawsze będzie używać zgodnych wersji bibliotek Firebase na Androida.
(Alternatywnie) Dodaj zależności bibliotek Firebase bez korzystania z BoM
Jeśli zdecydujesz się nie używać Firebase BoM, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Pamiętaj, że jeśli w swojej aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu będziesz mieć pewność, że wszystkie wersje są zgodne.
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") }
Skonfiguruj: Realtime Database Security Rules
Realtime Database udostępnia deklaratywny język reguł, który pozwala określić, jak powinny być ustrukturyzowane i indeksowane dane oraz kiedy można je odczytywać i zapisywać.
Zapisz w bazie danych
Pobierz instancję bazy danych za pomocą funkcji getInstance()
i odwołaj się do lokalizacji, do której chcesz zapisać dane.
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żesz zapisać w bazie danych wiele typów danych, w tym obiekty Java. Gdy zapiszesz obiekt, odpowiedzi z dowolnych metod getter zostaną zapisane jako elementy podrzędne tej lokalizacji.
Odczytywanie danych z bazy danych
Aby dane aplikacji były aktualizowane w czasie rzeczywistym, dodaj parametr ValueEventListener
do utworzonego właśnie odwołania.
Metoda onDataChange()
w tej klasie jest wyzwalana raz po podłączeniu odbiornika i ponownie za każdym razem, gdy dane zostaną zmienione, w tym elementy podrzędne.
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 Firebase Realtime Database razem z ProGuard, musisz wziąć pod uwagę, jak obiekty modelu będą serializowane i deserializowane po zaciemnieniu. Jeśli do odczytywania i zapisywania 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 sprawie pytań lub problemów związanych z ProGuard, odwiedź fora społeczności Guardsquare, aby uzyskać pomoc od eksperta.
Przygotowanie do uruchomienia
Przed opublikowaniem aplikacji zalecamy przejrzenie listy kontrolnej, aby upewnić się, że jest ona gotowa do opublikowania.
Pamiętaj, aby włączyć App Check, aby mieć pewność, że tylko Twoje aplikacje będą miały dostęp do baz danych.
Następne kroki
- Dowiedz się, jak uporządkować dane w przypadku Realtime Database
- Skalowanie danych na wiele instancji bazy danych.
- Odczytywanie i zapisywanie danych.
- Wyświetl bazę danych w konsoli Firebase.