Wyślij wiadomość testową do aplikacji w tle

Aby rozpocząć korzystanie z FCM, zaimplementuj najprostszy przypadek użycia: wyślij testowe powiadomienie z  komponisty powiadomień na urządzenie programistyczne, gdy aplikacja działa w tle. Na tej stronie znajdziesz wszystkie kroki, które należy wykonać, od konfiguracji do weryfikacji. Mogą one obejmować czynności, które zostały już przez Ciebie wykonane, jeśli skonfigurujesz aplikację klienta na Androida dla FCM.

.

Konfigurowanie pakietu SDK

W tej sekcji znajdziesz czynności, które możesz już mieć wykonane, jeśli masz w swojej aplikacji włączone inne funkcje Firebase.

Zanim zaczniesz

  • Zainstaluj lub zaktualizuj Android Studio do najnowszej wersji.

  • Upewnij się, że Twój projekt spełnia te wymagania (zauważ, że niektóre produkty mogą mieć bardziej rygorystyczne wymagania):

    • Aplikacja jest kierowana na poziom API 21 (Lollipop) lub wyższy.
    • Urządzenie z Androidem w wersji 5.0 lub nowszej,
    • Używa Jetpacka (AndroidX), który musi spełniać te wymagania dotyczące wersji:
      • com.android.tools.build:gradle w wersji 7.3.0 lub nowszej
      • compileSdkVersion 28 lub nowsza
  • Skonfiguruj urządzenie fizyczne lub użyj emulatora, aby uruchomić aplikację.
    Pamiętaj, że pakiety SDK Firebase zależne od usług Google Play wymagają zainstalowania usług Google Play na urządzeniu lub w emulatorze.

  • Zaloguj się w Firebase, używając konta Google.

Jeśli nie masz jeszcze projektu na Androida i chcesz wypróbować usługę Firebase, możesz pobrać jeden z naszych sampli szybkiego startu.

Tworzenie projektu Firebase

Zanim dodasz Firebase do aplikacji na Androida, musisz utworzyć projekt Firebase, aby połączyć go z tą aplikacją. Więcej informacji o projektach Firebase znajdziesz w artykule Informacje o projektach Firebase.

  1. W konsoli Firebase kliknij Dodaj projekt.

    • Aby dodać zasoby Firebase do istniejącego projektu Google Cloud, wpisz jego nazwę lub wybierz ją z menu.

    • Aby utworzyć nowy projekt, wpisz jego nazwę. Opcjonalnie możesz też edytować identyfikator projektu wyświetlany pod nazwą projektu.

  2. Jeśli pojawi się taka prośba, zapoznaj się z warunkami usługi Firebase i je zaakceptuj.

  3. Kliknij Dalej.

  4. (Opcjonalnie) Skonfiguruj w projekcie Google Analytics, aby optymalnie korzystać z tych usług Firebase:

    Wybierz istniejące konto Google Analytics lub utwórz nowe konto.

    Jeśli tworzysz nowe konto, wybierz Analyticslokalizację raportowania, a następnie zaakceptuj ustawienia udostępniania danych i zasady Google Analytics dla projektu.

  5. Kliknij Utwórz projekt (lub Dodaj Firebase, jeśli używasz istniejącego projektu Google Cloud).

Firebase automatycznie udostępnia zasoby dla Twojego projektu Firebase. Po zakończeniu procesu wyświetli się strona podglądu projektu Firebase w konsoli Firebase.

Rejestrowanie aplikacji w Firebase

Aby korzystać z Firebase w aplikacji na Androida, musisz ją zarejestrować w projekcie Firebase. Rejestrowanie aplikacji jest często nazywane „dodawaniem” aplikacji do projektu.

  1. Otwórz konsolę Firebase.

  2. W centrum strony „Opis” projektu kliknij ikonę Android () lub Dodaj aplikację, aby uruchomić proces konfiguracji.

  3. W polu Nazwa pakietu na Androida wpisz nazwę pakietu aplikacji.

    • Nazwa pakietu jednoznacznie identyfikuje aplikację na urządzeniu i w Sklepie Google Play.

    • Nazwa pakietu jest często nazywana identyfikatorem aplikacji.

    • Znajdź nazwę pakietu aplikacji w pliku Gradle modułu (na poziomie aplikacji), zazwyczaj app/build.gradle (przykładowa nazwa pakietu: com.yourcompany.yourproject).

    • Pamiętaj, że wielkość liter w nazwie pakietu jest rozróżniana, a samej nazwy nie można zmienić po zarejestrowaniu aplikacji na Androida w projekcie Firebase.

  4. (Opcjonalnie) Wpisz inne informacje o aplikacji: pseudonim aplikacjicertyfikat podpisywania debugowania SHA-1.

  5. Kliknij Zarejestruj aplikację.

Dodawanie pliku konfiguracji Firebase

  1. Pobierz plik konfiguracji Firebase na Androida (google-services.json) i dodaj go do aplikacji:

    1. Kliknij Pobierz plik google-services.json, aby pobrać plik konfiguracji Firebase na Androida.

    2. Przenieś plik konfiguracji do głównego katalogu modułu (poziom aplikacji).

    • Plik konfiguracji Firebase zawiera unikalne, ale nie tajne identyfikatory projektu. Więcej informacji o tym pliku konfiguracyjnym znajdziesz w artykule Informacje o projektach Firebase.

    • W każdej chwili możesz ponownie pobrać plik konfiguracyjny Firebase.

    • Sprawdź, czy nazwa pliku konfiguracyjnego nie zawiera dodatkowych znaków, np. „(2)”.

  2. Aby udostępnić wartości w pliku konfiguracyjnym google-services.json pakietom SDK Firebase, musisz mieć wtyczkę Gradle dla usług Google (google-services).

    1. W pliku Gradle na poziomie głównym (poziomie projektu) (<project>/build.gradle.kts lub <project>/build.gradle) dodaj wtyczkę usług Google jako zależność:

      KotlinGroovy
      plugins {
        id("com.android.application") version "7.3.0" apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id("com.google.gms.google-services") version "4.4.2" apply false
      }
      plugins {
        id 'com.android.application' version '7.3.0' apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id 'com.google.gms.google-services' version '4.4.2' apply false
      }
    2. W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj wtyczkę usług Google:

      KotlinGroovy
      plugins {
        id("com.android.application")
      
        // Add the Google services Gradle plugin
        id("com.google.gms.google-services")
        // ...
      }
      plugins {
        id 'com.android.application'
      
        // Add the Google services Gradle plugin
        id 'com.google.gms.google-services'
        // ...
      }

Dodawanie pakietów SDK Firebase do aplikacji

  1. 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ą Firebase Cloud Messaging na Androida. Zalecamy używanie Firebase Android BoM do kontrolowania wersji biblioteki.

    Aby uzyskać optymalne wyniki w przypadku Firebase Cloud Messaging, zalecamy włączenie Google Analytics w projekcie Firebase i dodanie do aplikacji pakietu SDK Firebase dla Google Analytics.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.9.0"))
    
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-messaging")
        implementation("com.google.firebase:firebase-analytics")
    }

    Gdy korzystasz z Firebase Android BoM, aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.

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

    Jeśli w aplikacji używasz kilku bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu wszystkie wersje będą ze sobą zgodne.

    dependencies {
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-messaging:24.1.0")
        implementation("com.google.firebase:firebase-analytics:22.2.0")
    }
    Szukasz modułu biblioteki dla Kotlina? Od października 2023 r. (Firebase BoM 32.5.0) deweloperzy Kotlina i Java mogą korzystać z głównego modułu biblioteki (szczegółowe informacje znajdziesz w często zadawanych pytaniach dotyczących tej inicjatywy).

  2. Synchronizuj projekt Androida z plikami Gradle.

    Kompilacje Gradle, które korzystają z wtyczki Androida do obsługi Gradle (AGP) w wersji 4.2 lub starszej, muszą mieć włączoną obsługę Javy 8. W przeciwnym razie podczas dodawania pakietu SDK Firebase te projekty na Androida będą miały błąd kompilacji.

    Aby rozwiązać ten problem, możesz wykonać jedną z tych czynności:

    • Dodaj wymienione w komunikacie o błędzie wartości compileOptions do pliku build.gradle.kts lub build.gradle na poziomie aplikacji.
    • Zwiększ wartość minSdk w projekcie na Androida do 26 lub wyższej.

    Więcej informacji o tym błędzie kompilacji znajdziesz w odpowiedziach na najczęstsze pytania.

Dostęp do tokena rejestracji

Aby wysłać wiadomość na konkretne urządzenie, musisz znać token rejestracji tego urządzenia. Aby ukończyć ten samouczek, musisz wpisać token w polu w konsoli powiadomień. Po pobraniu tokena skopiuj go lub zapisz w bezpiecznym miejscu.

Podczas uruchamiania aplikacji pakiet SDK FCM generuje token rejestracji dla wystąpienia aplikacji klienta. Jeśli chcesz kierować reklamy na pojedyncze urządzenia lub tworzyć grupy urządzeń, musisz uzyskać dostęp do tego tokena, rozszerzając FirebaseMessagingService i zastępując onNewToken.

Z tej sekcji dowiesz się, jak pobrać token i monitorować jego zmiany. Ponieważ token może zostać zastąpiony po pierwszym uruchomieniu, zdecydowanie zalecamy pobranie najnowszego zaktualizowanego tokena rejestracji.

Token rejestracji może się zmienić, gdy:

  • Aplikacja jest przywracana na nowym urządzeniu
  • Użytkownik odinstaluje lub ponownie zainstaluje aplikację.
  • Użytkownik czyści dane aplikacji.

Pobieranie bieżącego tokena rejestracji

Gdy chcesz pobrać bieżący token, wywołaj funkcję FirebaseMessaging.getInstance().getToken():

KotlinJava
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w(TAG, "Fetching FCM registration token failed", task.exception)
        return@OnCompleteListener
    }

    // Get new FCM registration token
    val token = task.result

    // Log and toast
    val msg = getString(R.string.msg_token_fmt, token)
    Log.d(TAG, msg)
    Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
})
FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
          if (!task.isSuccessful()) {
            Log.w(TAG, "Fetching FCM registration token failed", task.getException());
            return;
          }

          // Get new FCM registration token
          String token = task.getResult();

          // Log and toast
          String msg = getString(R.string.msg_token_fmt, token);
          Log.d(TAG, msg);
          Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
    });

Monitorowanie generowania tokenów

Funkcja zwracana onNewToken jest wywoływana za każdym razem, gdy generowany jest nowy token.

KotlinJava
/**
 * Called if the FCM registration token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the
 * FCM registration token is initially generated so this is where you would retrieve the token.
 */
override fun onNewToken(token: String) {
    Log.d(TAG, "Refreshed token: $token")

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // FCM registration token to your app server.
    sendRegistrationToServer(token)
}
/**
 * There are two scenarios when onNewToken is called:
 * 1) When a new token is generated on initial app startup
 * 2) Whenever an existing token is changed
 * Under #2, there are three scenarios when the existing token is changed:
 * A) App is restored to a new device
 * B) User uninstalls/reinstalls the app
 * C) User clears app data
 */
@Override
public void onNewToken(@NonNull String token) {
    Log.d(TAG, "Refreshed token: " + token);

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // FCM registration token to your app server.
    sendRegistrationToServer(token);
}

Po uzyskaniu tokena możesz go wysłać na serwer aplikacji i zapisać go za pomocą preferowanej metody.

Wysyłanie testowej wiadomości z powiadomieniem

  1. Zainstaluj aplikację na urządzeniu docelowym i uruchom ją. Na urządzeniach Apple musisz zaakceptować prośbę o zezwolenie na otrzymywanie powiadomień zdalnych.

  2. Upewnij się, że aplikacja działa w tle na urządzeniu.

  3. W konsoli Firebase otwórz stronę Wiadomości.

  4. Jeśli to Twoja pierwsza wiadomość, kliknij Utwórz pierwszą kampanię.

    1. Kliknij kolejno Wiadomości powiadomień FirebaseUtwórz.
  5. W przeciwnym razie na karcie Kampanie kliknij kolejno Nowa kampaniaPowiadomienia.

  6. Wpisz tekst wiadomości. Pozostałe pola są opcjonalne.

  7. W prawym okienku kliknij Wyślij wiadomość testową.

  8. W polu Dodaj token rejestracji FCM wpisz token rejestracji uzyskany w poprzedniej sekcji tego przewodnika.

  9. Kliknij Test.

Po wybraniu opcji Test wybrane urządzenie klienta (z aplikacją działającą w tle) powinno otrzymać powiadomienie.

Aby uzyskać informacje o dostarczaniu wiadomości do aplikacji, otwórz FCM panel raportowania, który zawiera informacje o liczbie wiadomości wysłanych i otwartych na urządzeniach Apple i Android, a także dane o wyświetleniach (powiadomieniach wyświetlanych użytkownikom) aplikacji na Androida.

Dalsze kroki

Wysyłanie wiadomości do aplikacji na pierwszym planie

Po wysłaniu powiadomień, gdy aplikacja była uruchomiona w tle, zapoznaj się z artykułem Otrzymywanie wiadomości w aplikacji na Androida, aby dowiedzieć się, jak wysyłać je do aplikacji na pierwszym planie.

Coś więcej niż wiadomości z powiadomieniami

Aby dodać do aplikacji inne, bardziej zaawansowane funkcje niż tylko wiadomości z powiadomieniami, zapoznaj się z tymi artykułami: