Połącz swoją aplikację z Firebase
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 przepływem pracy tworzenia bazy danych.
Wybierz tryb uruchamiania reguł zabezpieczeń Firebase:
- Tryb testowy
Dobry do rozpoczęcia pracy z bibliotekami klientów mobilnych i internetowych, ale umożliwia każdemu odczytywanie i nadpisywanie danych. Po przeprowadzeniu testów zapoznaj się z sekcją Omówienie reguł bazy danych czasu rzeczywistego Firebase .
Aby rozpocząć korzystanie z pakietu SDK sieci Web, Apple lub Android, wybierz tryb testowy.
- Tryb zablokowany
Odrzuca wszystkie odczyty i zapisy z klientów mobilnych i internetowych. Twoje uwierzytelnione serwery aplikacji mogą nadal uzyskiwać 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 innych lokalizacjach)
Kliknij Gotowe .
Włączenie Bazy danych czasu rzeczywistego powoduje również włączenie interfejsu API w Cloud API Manager .
Dodaj pakiet SDK bazy danych czasu rzeczywistego do swojej aplikacji
Korzystając z Firebase Android BoM , zadeklaruj zależność dla biblioteki Realtime Database Android w pliku Gradle modułu (na poziomie aplikacji) (zwykleapp/build.gradle
). Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.1.0') // Declare 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 używać zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Zadeklaruj zależności biblioteki Firebase bez użycia BoM
Jeśli zdecydujesz się nie korzystać z BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Pamiętaj, że jeśli korzystasz z wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.
dependencies { // Declare 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.0.5' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.1.0') // Declare 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-ktx' }
Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze używać zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Zadeklaruj zależności biblioteki Firebase bez użycia BoM
Jeśli zdecydujesz się nie korzystać z BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Pamiętaj, że jeśli korzystasz z wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.
dependencies { // Declare 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-ktx:20.0.5' }
Skonfiguruj reguły bazy danych czasu rzeczywistego
Baza danych czasu rzeczywistego zapewnia deklaratywny język reguł, który umożliwia zdefiniowanie struktury danych, sposobu ich indeksowania oraz czasu odczytywania i zapisywania danych.
Napisz do swojej bazy danych
Pobierz instancję bazy danych za pomocą metody getInstance()
i odnieś się do lokalizacji, w której chcesz pisać.
Java
// Write a message to the database FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message"); myRef.setValue("Hello, World!");
Kotlin+KTX
// Write a message to the database val database = Firebase.database val myRef = database.getReference("message") myRef.setValue("Hello, World!")
W ten sposób można zapisać w bazie danych szereg typów danych, w tym obiekty Java. Kiedy zapiszesz obiekt, odpowiedzi z wszystkich pobierających zostaną zapisane jako dzieci tej lokalizacji.
Czytaj z Twojej bazy danych
Aby dane aplikacji były aktualizowane w czasie rzeczywistym, należy dodać element ValueEventListener
do utworzonej właśnie referencji.
Metoda onDataChange()
w tej klasie jest wywoływana raz, gdy odbiornik jest dołączony, i ponownie za każdym razem, gdy zmieniają się dane, w tym dzieci.
Java
// Read from the database myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(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(DatabaseError error) { // Failed to read value Log.w(TAG, "Failed to read value.", error.toException()); } });
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()) } })
Opcjonalnie: Skonfiguruj ProGuard
Korzystając z bazy danych czasu rzeczywistego Firebase w swojej aplikacji razem z ProGuard, musisz wziąć pod uwagę sposób, w jaki obiekty modelu będą serializowane i deserializowane po zaciemnieniu. Jeśli używasz DataSnapshot.getValue(Class)
lub DatabaseReference.setValue(Object)
do odczytu i zapisu danych, 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 , aby uzyskać pomoc od eksperta.
Przygotuj się do uruchomienia
Przed uruchomieniem aplikacji zalecamy zapoznanie się z naszą listą kontrolną uruchamiania , aby upewnić się, że Twoja aplikacja jest gotowa do użycia!
Pamiętaj, aby włączyć Sprawdzanie aplikacji , aby upewnić się, że tylko Twoje aplikacje mają dostęp do Twoich baz danych.
Następne kroki
- Dowiedz się, jak uporządkować dane dla Bazy danych czasu rzeczywistego
- Skaluj dane w wielu instancjach bazy danych .
- Odczytuj i zapisuj dane .
- Wyświetl swoją bazę danych w konsoli Firebase .