Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida .
Utwórz bazę danych
Przejdź do sekcji Baza danych czasu rzeczywistego w konsoli Firebase . Zostaniesz poproszony o wybranie istniejącego projektu Firebase. Postępuj zgodnie z procesem tworzenia bazy danych.
Wybierz tryb początkowy dla reguł bezpieczeństwa Firebase:
- Tryb testowania
Dobry do rozpoczęcia pracy z bibliotekami klienta mobilnego i internetowego, ale umożliwia każdemu odczytywanie i nadpisywanie danych. Po przetestowaniu koniecznie zapoznaj się z sekcją Omówienie reguł bazy danych Firebase Realtime .
Aby rozpocząć korzystanie z Internetu, zestawu SDK Apple lub Androida, wybierz tryb testowy.
- Tryb zablokowany
Zabrania wszelkich odczytów i zapisów 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 następujących form:
DATABASE_NAME .firebaseio.com
(dla baz danych wus-central1
)DATABASE_NAME . REGION .firebasedatabase.app
(dla baz danych we wszystkich pozostałych lokalizacjach)
Kliknij Gotowe .
Włączenie bazy danych czasu rzeczywistego powoduje także włączenie interfejsu API w menedżerze Cloud API .
Dodaj zestaw SDK bazy danych czasu rzeczywistego do swojej 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ść dla bazy danych czasu rzeczywistego biblioteka dla Androida. Zalecamy używanie Firebase Android BoM do kontrolowania wersji bibliotek.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.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") }
Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze korzystać z kompatybilnych wersji bibliotek Firebase Android.
(Alternatywa) Dodaj zależności biblioteki Firebase bez użycia BoM
Jeśli zdecydujesz się nie używać BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Pamiętaj, że jeśli używasz w swojej aplikacji wielu bibliotek Firebase, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co gwarantuje, że wszystkie wersje będą kompatybilne.
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:20.3.0") }
Skonfiguruj reguły bezpieczeństwa bazy danych w czasie rzeczywistym
Baza danych czasu rzeczywistego udostępnia język reguł deklaratywnych, który umożliwia zdefiniowanie struktury danych, sposobu ich indeksowania oraz tego, kiedy dane mogą być odczytywane i zapisywane.
Zapisz do swojej bazy danych
Pobierz instancję swojej bazy danych za pomocą metody getInstance()
i odwołaj się do lokalizacji, do której chcesz pisać.
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 szereg typów danych, w tym obiekty Java. Kiedy zapiszesz obiekt, odpowiedzi od wszystkich modułów pobierających zostaną zapisane jako elementy podrzędne tej lokalizacji.
Przeczytaj z bazy danych
Aby dane aplikacji były aktualizowane w czasie rzeczywistym, należy dodać obiekt ValueEventListener
do właśnie utworzonego odniesienia.
Metoda onDataChange()
w tej klasie jest wywoływana raz, gdy słuchacz jest podłączony, i ponownie za każdym razem, gdy zmieniają się dane, łącznie z dziećmi.
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
Korzystając z bazy danych Firebase Realtime Database w swojej aplikacji wraz z ProGuardem, musisz rozważyć, w jaki sposób obiekty modelu będą serializowane i deserializowane po zaciemnieniu. Jeśli do odczytu i zapisu danych używasz DataSnapshot.getValue(Class)
lub DatabaseReference.setValue(Object)
, będziesz musiał 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 uzyskaj pomoc od eksperta.
Przygotuj się do startu
Przed uruchomieniem aplikacji zalecamy przejrzenie naszej listy kontrolnej uruchamiania, aby upewnić się, że aplikacja jest gotowa do użycia!
Pamiętaj, aby włączyć Sprawdzanie aplikacji , aby mieć pewność, że tylko Twoje aplikacje będą miały dostęp do Twoich baz danych.
Następne kroki
- Dowiedz się, jak strukturyzować dane dla bazy danych czasu rzeczywistego
- Skaluj swoje dane w wielu instancjach bazy danych .
- Odczyt i zapis danych .
- Wyświetl swoją bazę danych w konsoli Firebase .