Łączenie aplikacji z Firebase

Jeśli jeszcze tego nie zrobiono, dodaj Firebase do projektu na Androida.

Tworzenie bazy danych

  1. Otwórz sekcję Realtime Database w konsoli Firebase. Pojawi się prośba o wybranie dotychczasowego projektu Firebase. Wykonaj proces tworzenia bazy danych.

  2. Wybierz tryb początkowy dla Firebase Security Rules:

    Tryb testowy

    Jest to dobre rozwiązanie na początek korzystania z bibliotek klienta mobilnego i internetowego, ale pozwala każdemu odczytywać i zapisywać Twoje dane. Po przetestowaniu zapoznaj się z sekcją Omówienie reguł Firebase Realtime Database.

    .

    Aby zacząć korzystać z pakietu SDK do przeglądarki, Apple lub Androida, wybierz tryb testowy.

    Tryb blokady

    Odrzuca wszystkie odczyty i zapisy z klientów mobilnych i internetowych. Twoje uwierzytelnione serwery aplikacji nadal mają dostęp do Twojej bazy danych.

  3. Wybierz lokalizację bazy danych.

    W zależności od lokalizacji bazy danych adres URL nowej bazy danych będzie miał jedną z tych form:

    • DATABASE_NAME.firebaseio.com (w przypadku baz danych w dodomenach us-central1)

    • DATABASE_NAME.REGION.firebasedatabase.app(w przypadku baz danych w innych lokalizacjach)

  4. Kliknij Gotowe.

Gdy włączysz Realtime Database, interfejs API zostanie też włączony w Menedżerze interfejsów API w chmurze.

Dodawanie do aplikacji pakietu SDK Realtime Database

pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj zależność z biblioteką Realtime Database na Androida. Zalecamy używanie Firebase Android BoM do kontrolowania wersji biblioteki.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.7.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")
}

Gdy korzystasz z Firebase Android BoM, aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.

(Alternatywnie)  Dodaj zależności biblioteki Firebase bez używania pakietu BoM

Jeśli zdecydujesz się nie używać Firebase BoM, musisz podać każdą wersję biblioteki Firebase w jej wierszu zależności.

Jeśli w aplikacji używasz kilku bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu wszystkie wersje będą ze sobą 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")
}
Szukasz modułu biblioteki dla Kotlina? Od października 2023 r. (Firebase BoM 32.5.0) deweloperzy Kotlina i Java mogą korzystać z głównego modułu biblioteki (szczegółowe informacje znajdziesz w często zadawanych pytaniach dotyczących tej inicjatywy).

Skonfiguruj: Realtime Database Security Rules

Realtime Database udostępnia deklaratywny język reguł, który pozwala określić, jak powinny być ustrukturyzowane i indeksowane dane oraz kiedy można je odczytywać i zapisywać.

Zapisywanie w bazie danych

Pobierz instancję bazy danych za pomocą funkcji getInstance() i odwołuj się do lokalizacji, do której chcesz zapisać dane.

Kotlin

// 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 różne typy danych, w tym obiekty Java. Gdy zapiszesz obiekt, odpowiedzi z dowolnych metod getter zostaną zapisane jako elementy podrzędne tej lokalizacji.

Odczytywanie danych z bazy danych

Aby dane aplikacji były aktualizowane w czasie rzeczywistym, dodaj parametr ValueEventListener do utworzonego właśnie odwołania.

Metoda onDataChange() w tej klasie jest wywoływana raz, gdy słuchacz zostanie dołączony, oraz ponownie za każdym razem, gdy zmienią się dane, w tym podrzędne.

Kotlin

// 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

Jeśli używasz w aplikacji Firebase Realtime Database razem z ProGuard, musisz wziąć pod uwagę, jak obiekty modelu będą serializowane i deserializowane po zaciemnieniu. Jeśli do odczytu i zapisu danych używasz programu DataSnapshot.getValue(Class) lub DatabaseReference.setValue(Object), 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 sprawach związanych z ProGuard, odwiedź fora społeczności Guardsquare, aby uzyskać pomoc od eksperta.

Przygotowanie do uruchomienia

Przed opublikowaniem aplikacji zalecamy przejrzenie listy kontrolnej, aby mieć pewność, że jest ona gotowa do opublikowania.

Pamiętaj, aby włączyć opcję App Check, aby mieć pewność, że tylko Twoje aplikacje będą miały dostęp do baz danych.

Następne kroki