Połącz swoją aplikację z Firebase, 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ł bezpieczeństwa Firebase:

    Tryb testowania

    Dobre do rozpoczęcia pracy z bibliotekami klienta mobilnego i internetowego, ale umożliwia każdemu odczytywanie i zastępowanie danych. Po przetestowaniu przejrzyj sekcję Omówienie zasad bazy danych czasu rzeczywistego Firebase .

    Aby rozpocząć pracę z Internetem, zestawem SDK firmy 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ę dla bazy danych.

    W zależności od lokalizacji bazy danych adres URL nowej bazy danych będzie miał jedną z następujących postaci:

    • 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 zestaw SDK bazy danych czasu rzeczywistego do swojej aplikacji

W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle ) dodaj zależność dla biblioteki Realtime Database Android. Zalecamy używanie Firebase Android BoM do kontrolowania wersji bibliotek.

Kotlin+KTX

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

Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze korzystać ze zgodnych wersji bibliotek Firebase Android.

(Alternatywnie) Dodaj zależności biblioteki 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 w swojej aplikacji wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek, co zapewnia 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-ktx:20.2.2'
}

Java

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

Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze korzystać ze zgodnych wersji bibliotek Firebase Android.

(Alternatywnie) Dodaj zależności biblioteki 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 w swojej aplikacji wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek, co zapewnia 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:20.2.2'
}

Skonfiguruj reguły bezpieczeństwa bazy danych w czasie rzeczywistym

Baza danych czasu rzeczywistego zapewnia język reguł deklaratywnych, który pozwala określić, w jaki sposób dane powinny być ustrukturyzowane, jak powinny być indeksowane oraz kiedy dane mogą być odczytywane i zapisywane.

Napisz do swojej bazy danych

Pobierz instancję swojej bazy danych za pomocą getInstance() i odwołaj się do lokalizacji, 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żna zapisać w bazie danych różne typy danych, w tym obiekty Java. Kiedy zapiszesz obiekt, odpowiedzi od wszystkich pobierających zostaną zapisane jako elementy podrzędne tej lokalizacji.

Odczyt ze swojej bazy danych

Aby dane aplikacji były aktualizowane w czasie rzeczywistym, należy dodać obiekt ValueEventListener do właśnie utworzonego odniesienia.

Metoda onDataChange() w tej klasie jest wyzwalana raz, gdy odbiornik jest podłączony, i ponownie za każdym razem, gdy zmieniają się dane, 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

Korzystając z Firebase Realtime Database w swojej aplikacji wraz z ProGuard, musisz rozważyć, 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, 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 , aby uzyskać pomoc od eksperta.

Przygotuj się do startu

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

Pamiętaj, aby włączyć sprawdzanie aplikacji , aby mieć pewność, że tylko Twoje aplikacje będą miały dostęp do Twoich baz danych.

Następne kroki