Jeśli jeszcze nie masz tego za sobą, dodaj Firebase do swojego projektu na Androida.
Utwórz bazę danych
Przejdź do sekcji Realtime Database Konsola Firebase. Pojawi się prośba o wybranie istniejącego projektu Firebase. Postępuj zgodnie z procedurą tworzenia bazy danych.
Wybierz tryb początkowy dla urządzenia Firebase Security Rules:
- 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.
Gdy włączysz Realtime Database, spowoduje to również włączenie interfejsu API w Menedżer interfejsów API Cloud.
Dodaj do aplikacji pakiet SDK Realtime Database
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ą Realtime Database na Androida. Zalecamy użycie metody
Firebase Android BoM
aby kontrolować obsługę wersji biblioteki.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.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 narzędzia Firebase Android BoM, Twoja aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.
(Wersja alternatywna) Dodaj zależności biblioteki Firebase bez użycia komponentu BoM
Jeśli nie chcesz używać biblioteki 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 aplikacji, zalecamy korzystanie z BoM do zarządzania wersjami biblioteki. Dzięki temu 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 język reguł deklaratywnych, który pozwala 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
Gdy używasz w aplikacji Firebase Realtime Database razem z ProGuard, musisz:
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 App Check, aby mieć pewność, że: dostępu do baz danych mają tylko aplikacje.
Następne kroki
- Dowiedz się, jak porządkować dane. przez Realtime Database
- Skaluj dane w wielu instancjach bazy danych.
- Odczyt i zapis danych.
- Wyświetl bazę danych w konsoli Firebase.