Łączenie aplikacji z Firebase

Jeśli jeszcze nie masz tego za sobą, dodaj Firebase do swojego projektu na Androida.

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

    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.

  3. 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:

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

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

  4. 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")
}
Szukasz modułu biblioteki korzystającego z usługi Kotlin? Zaczyna się za Październik 2023 r. (Firebase BoM 32.5.0), programiści, zarówno w języku Kotlin, jak i w języku Java, zależą od modułu biblioteki głównej (więcej informacji znajdziesz w Najczęstsze pytania na temat tej inicjatywy).

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