Jeśli jeszcze nie masz tego za sobą, dodaj Firebase do swojego projektu na Androida.
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
Dobre rozwiązanie w przypadku rozpoczynania pracy z bibliotekami klienta mobilnego i internetowego, ale pozwala każdemu na odczyt i zastępowanie Twoich danych. Po zakończeniu testów upewnij się, że zapoznaj się z informacjami o regułach Bazy danych czasu rzeczywistego Firebase.
Aby zacząć korzystać z pakietu SDK w wersji internetowej, Apple lub Android, wybierz tryb testowy.
- Tryb blokady
Blokuje wszystkie odczyty i zapisy z klientów mobilnych i internetowych. Uwierzytelnione serwery aplikacji nadal mogą uzyskać dostęp do bazy danych.
Wybierz lokalizację bazy danych.
W zależności od lokalizacja bazy danych, Adres URL nowej bazy danych będzie miał jeden z tych formatów:
(dla baz danych wDATABASE_NAME.firebaseio.com
us-central1
) (dla baz danych w innych lokalizacjach)DATABASE_NAME.REGION.firebasedatabase.app
Kliknij Gotowe.
Po włączeniu Bazy danych czasu rzeczywistego zostanie też włączony interfejs API w Menedżer interfejsów API Cloud.
Dodawanie pakietu SDK Bazy danych czasu rzeczywistego do aplikacji
w pliku Gradle (na poziomie aplikacji) modułu, (zwykle<project>/<app-module>/build.gradle.kts
lub
<project>/<app-module>/build.gradle
),
dodaj zależność z biblioteką Bazy danych czasu rzeczywistego dla Androida. Zalecamy użycie metody
Funkcja BoM Firebase na Androida
aby kontrolować obsługę wersji biblioteki.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.2")) // 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 BM Firebase Android BoM, Twoja aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.
(Wersja alternatywna) Dodawanie zależności biblioteki Firebase bez korzystania z BM
Jeśli nie chcesz używać Firebase BoM, musisz określić każdą wersję biblioteki Firebase w wierszu zależności.
Pamiętaj, że jeśli używasz wielu bibliotek Firebase w swojej aplikacji, zalecamy korzystanie z BoM do zarządzania wersjami biblioteki, dzięki czemu wszystkie wersje
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 język reguł deklaratywnych, który umożliwia określić, jak powinny być uporządkowane dane w indeksie, a także o tym, kiedy można odczytywać dane i w których można je zapisywać.
Zapisz w bazie danych
Pobranie instancji bazy danych za pomocą funkcji getInstance()
i
wskazuje lokalizację, 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żesz zapisywać w bazie danych różne typy danych, w tym Javę obiektów. Gdy zapiszesz obiekt, odpowiedzi ze źródeł pobierania zostaną zapisane jako dzieci z tej lokalizacji.
Odczyt z bazy danych
Aby aktualizować dane aplikacji w czasie rzeczywistym, dodaj
ValueEventListener
do utworzonego właśnie pliku referencyjnego.
Metoda onDataChange()
w tej klasie jest aktywowana raz, gdy odbiornik jest
i ponownie po każdej zmianie danych, również tych 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
Aby używać w aplikacji Bazy danych czasu rzeczywistego Firebase wraz z ProGuard:
zastanów się, jak obiekty modelu będą serializowane i deserializowane po
zaciemnianie kodu. Jeśli korzystasz z usługi DataSnapshot.getValue(Class)
lub
DatabaseReference.setValue(Object)
, aby odczytywać i zapisywać dane, wymagane jest
dodaj 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 eksperta.
Przygotowanie do premiery
Przed wprowadzeniem aplikacji zalecamy zapoznanie się z lista kontrolna uruchamiania, by upewnić się, że aplikacja gotowy do pracy!
Włącz Sprawdzanie aplikacji, by mieć pewność, że dostępu do baz danych mają tylko aplikacje.
Następne kroki
- Dowiedz się, jak porządkować dane. dla Bazy danych czasu rzeczywistego
- Skaluj dane w wielu instancjach bazy danych.
- Odczyt i zapis danych.
- Wyświetl bazę danych w konsoli Firebase.