Check out what’s new from Firebase at Google I/O 2022. Learn more

Instalacja i konfiguracja na Androidzie

Połącz swoją aplikację z Firebase

Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida .

Utwórz bazę danych

  1. Przejdź do sekcji Baza danych czasu rzeczywistego w konsoli Firebase . Zostaniesz poproszony o wybranie istniejącego projektu Firebase. Postępuj zgodnie z przepływem pracy tworzenia bazy danych.

  2. Wybierz tryb uruchamiania reguł zabezpieczeń Firebase:

    Tryb testowy

    Dobry do rozpoczęcia pracy z bibliotekami klientów mobilnych i internetowych, ale umożliwia każdemu odczytywanie i nadpisywanie danych. Po przeprowadzeniu testów zapoznaj się z sekcją Omówienie reguł bazy danych czasu rzeczywistego Firebase .

    Aby rozpocząć korzystanie z pakietu SDK sieci Web, Apple lub Android, wybierz tryb testowy.

    Tryb zablokowany

    Odrzuca wszystkie odczyty i zapisy z klientów mobilnych i internetowych. Twoje uwierzytelnione serwery aplikacji mogą nadal uzyskiwać 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 następujących form:

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

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

  4. Kliknij Gotowe .

Włączenie Bazy danych czasu rzeczywistego powoduje również włączenie interfejsu API w Cloud API Manager .

Dodaj pakiet SDK bazy danych czasu rzeczywistego do swojej aplikacji

Korzystając z Firebase Android BoM , zadeklaruj zależność dla biblioteki Realtime Database Android w pliku Gradle modułu (na poziomie aplikacji) (zwykle app/build.gradle ).

Java

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

    // Declare 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 Firebase Android BoM , Twoja aplikacja będzie zawsze używać zgodnych wersji bibliotek Firebase Android.

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

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

Pamiętaj, że jeśli korzystasz z wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.

dependencies {
    // Declare 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:20.0.5'
}

Kotlin+KTX

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

    // Declare 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-ktx'
}

Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze używać zgodnych wersji bibliotek Firebase Android.

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

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

Pamiętaj, że jeśli korzystasz z wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.

dependencies {
    // Declare 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-ktx:20.0.5'
}

Skonfiguruj reguły bazy danych czasu rzeczywistego

Baza danych czasu rzeczywistego zapewnia deklaratywny język reguł, który umożliwia zdefiniowanie struktury danych, sposobu ich indeksowania oraz czasu odczytywania i zapisywania danych.

Napisz do swojej bazy danych

Pobierz instancję bazy danych za pomocą metody getInstance() i odnieś się do lokalizacji, w której chcesz pisać.

Java

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

Kotlin+KTX

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

W ten sposób można zapisać w bazie danych szereg typów danych, w tym obiekty Java. Kiedy zapiszesz obiekt, odpowiedzi z wszystkich pobierających zostaną zapisane jako dzieci tej lokalizacji.

Czytaj z Twojej bazy danych

Aby dane aplikacji były aktualizowane w czasie rzeczywistym, należy dodać element ValueEventListener do utworzonej właśnie referencji.

Metoda onDataChange() w tej klasie jest wywoływana raz, gdy odbiornik jest dołączony, i ponownie za każdym razem, gdy zmieniają się dane, w tym dzieci.

Java

// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(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(DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

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())
    }
})

Opcjonalnie: Skonfiguruj ProGuard

Korzystając z bazy danych czasu rzeczywistego Firebase w swojej aplikacji razem z ProGuard, musisz wziąć pod uwagę sposób, w jaki obiekty modelu będą serializowane i deserializowane po zaciemnieniu. Jeśli używasz DataSnapshot.getValue(Class) lub DatabaseReference.setValue(Object) do odczytu i zapisu danych, będziesz musiał 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 , aby uzyskać pomoc od eksperta.

Przygotuj się do uruchomienia

Przed uruchomieniem aplikacji zalecamy zapoznanie się z naszą listą kontrolną uruchamiania , aby upewnić się, że Twoja aplikacja jest gotowa do użycia!

Pamiętaj, aby włączyć Sprawdzanie aplikacji , aby upewnić się, że tylko Twoje aplikacje mają dostęp do Twoich baz danych.

Następne kroki