Połącz swoją aplikację z Firebase

Dodaj Firebase do swojego projektu na Androida, jeśli jeszcze go nie masz.

Utwórz bazę danych

  1. 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.

  2. Wybierz tryb początkowy reguł zabezpieczeń Firebase:

    Tryb testowy

    Świetnie nadaje się do pracy z bibliotekami klienta mobilnego i internetowego, ale pozwala każdemu na odczytywanie i zastępowanie danych. Po zakończeniu testów zapoznaj się z sekcją Omówienie reguł bazy danych czasu rzeczywistego Firebase.

    Aby zacząć korzystać z pakietu SDK na komputery, Apple lub Androida, wybierz tryb testowy.

    Tryb blokady

    Odrzuca wszystkie odczyty i zapisy z klientów mobilnych oraz internetowych. Uwierzytelnione serwery aplikacji nadal mogą uzyskać 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 postaci:

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

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

  4. Kliknij Gotowe.

Gdy włączysz Bazę danych czasu rzeczywistego, spowoduje to też włączenie interfejsu API w Menedżerze interfejsów Cloud API.

Dodaj do aplikacji pakiet SDK Bazy danych czasu rzeczywistego

W pliku Gradle na poziomie modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj zależność z biblioteką Bazy danych czasu rzeczywistego na Androida. Do kontrolowania obsługi wersji biblioteki zalecamy używanie BOM Firebase na Androida.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.1.1"))

    // 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")
}

Dzięki wykorzystaniu BM od Firebase Android Twoja aplikacja zawsze będzie używała zgodnych wersji bibliotek Firebase na Androida.

(Alternatywnie) Dodaj zależności biblioteki Firebase bez użycia BoM.

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

Pamiętaj, że jeśli w aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami biblioteki. Zapewni to 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:21.0.0")
}
Szukasz modułu biblioteki dotyczącego konkretnego narzędzia Kotlin? Od października 2023 r. (Firebase BoM w wersji 32.5.0) deweloperzy korzystający z Kotlin i Javy mogą korzystać z modułu biblioteki głównej (szczegółowe informacje znajdziesz w odpowiedziach na najczęstsze pytania na temat tej inicjatywy).

Konfigurowanie reguł zabezpieczeń bazy danych czasu rzeczywistego

Baza danych czasu rzeczywistego udostępnia deklaratywny język reguł, który pozwala określić strukturę danych, sposób ich indeksowania oraz czas ich odczytywania i zapisywania.

Zapisz w bazie danych

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

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. Gdy zapiszesz obiekt, odpowiedzi ze wszystkich metod pobierających zostaną zapisane jako elementy podrzędne tej lokalizacji.

Odczyt z Twojej bazy danych

Aby dane aplikacji były aktualizowane w czasie rzeczywistym, dodaj ValueEventListener do utworzonego właśnie pliku referencyjnego.

Metoda onDataChange() w tej klasie jest aktywowana raz po podłączeniu detektora i ponownie przy każdej zmianie danych, w tym w przypadku elementów 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

Jeśli używasz w aplikacji Bazy danych czasu rzeczywistego Firebase razem z ProGuard, musisz się zastanowić, jak obiekty modelu będą zserializowane i deserializowane po zaciemnieniu kodu. Jeśli do odczytywania i zapisywania danych używasz funkcji 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 przypadku pytań lub problemów związanych z ProGuard, odwiedź fora społeczności Guardsquare i poproś o pomoc eksperta.

Przygotowanie do premiery

Zalecamy, by przed wprowadzeniem aplikacji na rynek sprawdzić jej listę kontrolną, by upewnić się, że jest gotowa do użycia.

Pamiętaj, by włączyć Sprawdzanie aplikacji, aby mieć pewność, że tylko aplikacje mają dostęp do baz danych.

Następne kroki