Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Instalacja i konfiguracja w systemie Android

Połącz swoją aplikację z Firebase

Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do projektu 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 początkowy dla reguł zabezpieczeń Firebase:

    Tryb testowy

    Dobry do rozpoczęcia pracy z bibliotekami klienta mobilnego i internetowego, ale umożliwia każdemu odczyt i nadpisanie danych. Po zakończeniu testów zapoznaj się z sekcją Omówienie reguł bazy danych czasu rzeczywistego Firebase .

    Aby rozpocząć korzystanie z zestawu SDK w wersji internetowej, iOS lub Android, wybierz tryb testowy.

    Tryb zablokowany

    Odmawia wszystkich odczytów i zapisów z klientów mobilnych i internetowych. Twoje uwierzytelnione serwery aplikacji mogą nadal uzyskiwać dostęp do bazy danych.

  3. Wybierz region dla bazy danych. W zależności od wybranego regionu przestrzeń nazw bazy danych będzie miała postać <databaseName>.firebaseio.com lub <databaseName>.<region>.firebasedatabase.app <databaseName>.firebaseio.com <databaseName>.<region>.firebasedatabase.app . Aby uzyskać więcej informacji, zobacz temat Wybieranie lokalizacji dla projektu .

  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

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

Jawa

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

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

(Alternatywnie) Zadeklaruj zależności bibliotek Firebase bez korzystania z BoM

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

Pamiętaj, że jeśli używasz wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy korzystanie z 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:19.7.0'
}

Kotlin + KTX

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

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

(Alternatywnie) Zadeklaruj zależności bibliotek Firebase bez korzystania z BoM

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

Pamiętaj, że jeśli używasz wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy korzystanie z 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:19.7.0'
}

Skonfiguruj reguły bazy danych czasu rzeczywistego

Baza danych czasu rzeczywistego zapewnia deklaratywny język reguł, który pozwala zdefiniować strukturę danych, sposób ich indeksowania oraz moment, w którym można je odczytywać i zapisywać.

Napisz do swojej bazy danych

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

Jawa

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

Odczytaj z bazy danych

Aby zaktualizować dane aplikacji w czasie rzeczywistym, należy dodać ValueEventListener do właśnie utworzonego ValueEventListener referencyjnego.

Metoda onDataChange() w tej klasie jest wyzwalana raz po dołączeniu detektora i ponownie za każdym razem, gdy zmieniają się dane, w tym elementy podrzędne.

Jawa

// 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 wraz z ProGuard, należy wziąć pod uwagę, w jaki sposób 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 premiery

Przed uruchomieniem aplikacji zalecamy przejrzenie naszej listy kontrolnej uruchamiania, aby upewnić się, że aplikacja jest gotowa do pracy!

Następne kroki