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

Aby rozpocząć korzystanie z FCM, utwórz najprostszy przypadek użycia: wyślij testową wiadomość z powiadomieniem z  kompozytora powiadomień na urządzenie deweloperskie, gdy aplikacja działa w tle. Na tej stronie znajdziesz wszystkie kroki, które należy wykonać, aby to osiągnąć – od konfiguracji po weryfikację. Może ona obejmować kroki, które zostały już wykonane, jeśli skonfigurowano aplikację kliencką na Androida na potrzeby FCM.

Konfigurowanie pakietu SDK

W tej sekcji opisujemy zadania, które mogłeś(-aś) już wykonać, jeśli masz włączone inne funkcje Firebase w swojej aplikacji.

Zanim zaczniesz

  • Zainstaluj lub zaktualizuj Android Studio do najnowszej wersji.

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

    • kierować aplikację co najmniej na poziom API 21 (Lollipop);
    • ma zainstalowanego Androida w wersji 5.0 lub nowszej,
    • Korzysta z Jetpacka (AndroidX), który 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 z zależnością od Usług Google Play wymagają, aby na urządzeniu lub emulatorze były zainstalowane Usługi Google Play.

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

Jeśli nie masz jeszcze projektu na Androida, a chcesz tylko wypróbować usługę Firebase, możesz pobrać jeden z naszych przykładowych projektów 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.

Rejestrowanie aplikacji w Firebase

Aby korzystać z Firebase w aplikacji na Androida, musisz zarejestrować aplikację w projekcie Firebase. Rejestracja aplikacji jest często nazywana „dodawaniem” aplikacji do projektu.

  1. Otwórz Firebasekonsolę.

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

  3. Wpisz nazwę pakietu aplikacji w polu Nazwa pakietu na Androida.

  4. (Opcjonalnie) wpisz inne informacje o aplikacji: pseudonim aplikacjiskrót SHA-1 certyfikatu podpisywania do debugowania.

  5. Kliknij Zarejestruj aplikację.

Dodawanie pliku konfiguracyjnego Firebase

  1. Pobierz, a następnie dodaj do bazy kodu plik konfiguracyjny Firebase aplikacji (google-services.json):

    1. Kliknij Pobierz google-services.json, aby uzyskać plik konfiguracyjny Firebase aplikacji.

    2. Przenieś plik konfiguracyjny do głównego katalogu modułu (na poziomie aplikacji) aplikacji.

  2. Aby wartości w pliku konfiguracyjnym google-services.json były dostępne dla pakietów SDK Firebase, potrzebujesz wtyczki Gradle 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ść:

      Kotlin

      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.3" apply false
      }

      Groovy

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

      Kotlin

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

      Groovy

      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 w pełni korzystać z 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:34.0.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 korzystamy z Firebase Android BoM, aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.

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

    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 w aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.

    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:25.0.0")
        implementation("com.google.firebase:firebase-analytics:23.0.0")
    }

  2. Zsynchronizuj projekt na Androida z plikami Gradle.

Dostęp do tokena rejestracji

Aby wysłać wiadomość na konkretne urządzenie, musisz znać jego token rejestracji. Aby ukończyć ten samouczek, musisz wpisać token w odpowiednim polu w konsoli powiadomień, więc po jego pobraniu skopiuj go lub bezpiecznie przechowuj.

Przy pierwszym uruchomieniu aplikacji pakiet SDK FCM generuje token rejestracyjny dla instancji aplikacji klienckiej. 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.

W tej sekcji dowiesz się, jak pobrać token i monitorować zmiany w nim. Token może zostać zmieniony po początkowym uruchomieniu, dlatego zdecydowanie zalecamy pobranie najnowszego zaktualizowanego tokena rejestracji.

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

  • Aplikacja zostanie przywrócona na nowym urządzeniu.
  • Użytkownik odinstaluje lub ponownie zainstaluje aplikację
  • Użytkownik czyści dane aplikacji.

Pobieranie bieżącego tokena rejestracji

Aby pobrać bieżący token, wywołaj: FirebaseMessaging.getInstance().getToken()

Kotlin

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

Java

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

Wywołanie zwrotne onNewToken jest uruchamiane za każdym razem, gdy generowany jest nowy token.

Kotlin

/**
 * 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)
}

Java

/**
 * 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 wybraną metodą.

Wysyłanie testowej wiadomości z powiadomieniem

  1. Zainstaluj i uruchom aplikację na urządzeniu docelowym. 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ę Messaging.

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

    1. Wybierz Wiadomości z powiadomieniami Firebase i kliknij Utwórz.
  5. W przeciwnym razie na karcie Kampanie kliknij Nowa kampania, a potem Powiadomienia.

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

  7. W panelu po prawej stronie kliknij Wyślij wiadomość testową.

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

  9. Kliknij Przetestuj.

Po kliknięciu Testuj docelowe 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 rejestruje liczbę wysłanych i otwartych wiadomości na urządzeniach z Androidem i Apple, a także dane o „wyświetleniach” (powiadomieniach widocznych dla użytkowników) w przypadku aplikacji na Androida.

Dalsze kroki

Wysyłanie wiadomości do aplikacji działających na pierwszym planie

Gdy uda Ci się wysłać wiadomości z powiadomieniami, gdy aplikacja działa w tle, zapoznaj się z artykułem Odbieranie wiadomości w aplikacji na Androida, aby zacząć wysyłać wiadomości do aplikacji działających na pierwszym planie.

Wykorzystaj więcej niż tylko wiadomości z powiadomieniami

Aby wyjść poza powiadomienia i dodać do aplikacji inne, bardziej zaawansowane funkcje, zapoznaj się z tymi artykułami: