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ł bezpieczeństwa Firebase:
- Tryb testowy
Dobre do rozpoczęcia pracy z bibliotekami klienta mobilnego i internetowego, ale umożliwia każdemu odczytywanie i zastępowanie danych. Po przetestowaniu przejrzyj sekcję Omówienie zasad bazy danych czasu rzeczywistego Firebase .
Aby rozpocząć pracę z Internetem, zestawem SDK firmy 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ę dla bazy danych.
W zależności od lokalizacji bazy danych adres URL nowej bazy danych będzie miał jedną z następujących postaci:
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 zestaw SDK bazy danych czasu rzeczywistego do swojej aplikacji
W pliku Gradle modułu (na poziomie aplikacji) (zwykle<project>/<app-module>/build.gradle
) dodaj zależność dla biblioteki Realtime Database Android. Zalecamy używanie Firebase Android BoM do kontrolowania wersji bibliotek. Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.3') // 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-ktx' }
Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze korzystać ze zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Dodaj zależności biblioteki Firebase bez korzystania z 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 korzystanie z BoM do zarządzania wersjami bibliotek, co zapewnia 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-ktx:20.1.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.3') // 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ć ze zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Dodaj zależności biblioteki Firebase bez korzystania z 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 korzystanie z BoM do zarządzania wersjami bibliotek, co zapewnia 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:20.1.0' }
Skonfiguruj reguły bazy danych czasu rzeczywistego
Baza danych czasu rzeczywistego zapewnia język reguł deklaratywnych, który pozwala określić, w jaki sposób dane powinny być ustrukturyzowane, jak powinny być indeksowane oraz kiedy dane mogą być odczytywane i zapisywane.
Napisz do swojej bazy danych
Pobierz instancję swojej bazy danych za pomocą getInstance()
i odwołaj się do lokalizacji, w 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żna zapisać w bazie danych różne typy danych, w tym obiekty Java. Kiedy zapiszesz obiekt, odpowiedzi od wszystkich pobierających zostaną zapisane jako elementy podrzędne tej lokalizacji.
Odczyt ze swojej 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 wyzwalana raz, gdy odbiornik jest podłączony, i ponownie za każdym razem, gdy zmieniają się dane, 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
Korzystając z Firebase Realtime Database w swojej aplikacji wraz z ProGuard, musisz rozważyć, w jaki sposób 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, 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 , aby uzyskać 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 ustrukturyzować dane w bazie danych czasu rzeczywistego
- Skaluj swoje dane w wielu instancjach bazy danych .
- Odczytywanie i zapisywanie danych .
- Wyświetl swoją bazę danych w konsoli Firebase .