Połącz swoją aplikację z Firebase

Dodaj Firebase do swojego projektu Android, chyba że masz to już za sobą.

Utwórz bazę danych

  1. W konsoli Firebase przejdź do sekcji Baza danych czasu rzeczywistego. Pojawi się prośba o wybranie istniejącego projektu Firebase. Postępuj zgodnie z procedurą tworzenia bazy danych.

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

    Tryb testowy

    Sprawdza się w przypadku rozpoczęcia korzystania z bibliotek klienta mobilnego i internetowego, ale pozwala każdemu na odczyt i zastępowanie Twoich danych. Po zakończeniu testów zapoznaj się z sekcją Omówienie reguł 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.

  3. Wybierz lokalizację bazy danych.

    W zależności od lokalizacji bazy danych jej adres URL może mieć jedną z tych form:

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

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

  4. Kliknij Gotowe.

Gdy włączysz Bazę danych czasu rzeczywistego, zostanie też włączony interfejs API w menedżerze interfejsów API Cloud.

Dodawanie pakietu SDK Bazy danych czasu rzeczywistego do aplikacji

W 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ą Bazy danych czasu rzeczywistego na Androida. Do kontrolowania obsługi wersji biblioteki zalecamy używanie funkcji Firebase Android BoM.

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

Dzięki użyciu BoM Firebase Android BoM Twoja aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.

(Alternatywnie) Dodawanie zależności bibliotek 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 w swojej aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu będziesz mieć pewność, że 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")
}
Szukasz modułu biblioteki korzystającego z usługi Kotlin? Od października 2023 r. (Firebase BoM 32.5.0) zarówno deweloperzy aplikacji Kotlin, jak i języki Java mogą korzystać z modułu biblioteki głównej (więcej informacji znajdziesz w odpowiedziach na najczęstsze pytania o tę inicjatywę).

Konfigurowanie reguł zabezpieczeń bazy danych czasu rzeczywistego

Baza danych czasu rzeczywistego udostępnia język z regułami deklaratywnymi, które pozwalają zdefiniować strukturę danych, sposób ich indeksowania oraz możliwość ich odczytywania i zapisywania.

Zapisz w bazie danych

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

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 szereg typów danych, w tym obiekty Java. Gdy zapiszesz obiekt, odpowiedzi z modułów pobierających zostaną zapisane jako elementy podrzędne tej lokalizacji.

Odczyt z bazy danych

Aby aktualizować dane aplikacji w czasie rzeczywistym, dodaj ValueEventListener do właśnie utworzonego pliku referencyjnego.

Metoda onDataChange() w tej klasie jest wyzwalana raz po podłączeniu odbiornika i ponownie za każdym razem, gdy dane zostaną zmienione, 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

Gdy w aplikacji korzystasz z Bazy danych czasu rzeczywistego Firebase wraz z ProGuard, musisz zastanowić się, jak obiekty modelu będą serializowane i deserializowane po zaciemnieniu kodu. Jeśli do odczytywania i zapisywania danych używasz 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.** {
      *;
    }

Jeśli masz pytania lub problemy związane z ProGuard, odwiedź fora społeczności Guardsquare, aby uzyskać pomoc od eksperta.

Przygotowanie do premiery

Zanim opublikujesz aplikację, zalecamy przejrzenie listy kontrolnej wprowadzania na rynek, aby upewnić się, że jest gotowa do wdrożenia.

Włącz Sprawdzanie aplikacji, aby mieć pewność, że tylko Twoje aplikacje mają dostęp do baz danych.

Następne kroki