Wyślij wiadomość testową do aplikacji działającej w tle

Aby rozpocząć korzystanie z FCM, utwórz najprostszy przypadek użycia: wysłanie powiadomienia testowego z narzędzia do tworzenia powiadomień do urządzenia programistycznego, gdy aplikacja działa w tle na urządzeniu. Na tej stronie znajdują się wszystkie kroki, które należy wykonać, aby to osiągnąć, od konfiguracji po weryfikację — może obejmować kroki, które już wykonałeś, jeśli skonfigurowałeś aplikację kliencką dla systemu Android dla FCM.

Skonfiguruj pakiet SDK

W tej sekcji omówiono zadania, które mogłeś wykonać, jeśli włączyłeś już inne funkcje Firebase w swojej aplikacji.

Zanim zaczniesz

  • Zainstaluj lub zaktualizuj Android Studio do najnowszej wersji.

  • Upewnij się, że Twój projekt spełnia następujące wymagania:

    • Docelowy poziom API 19 (KitKat) lub wyższy
    • Używa Androida 4.4 lub nowszego
    • Korzysta z Jetpack (AndroidX) , co obejmuje spełnienie następujących wymagań 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 zestawy SDK Firebase zależne od usług Google Play wymagają, aby na urządzeniu lub emulatorze były zainstalowane usługi Google Play.

  • Zaloguj się do Firebase przy użyciu swojego konta Google.

Jeśli nie masz jeszcze projektu na Androida i chcesz po prostu wypróbować produkt Firebase, możesz pobrać jeden z naszych przykładów szybkiego startu .

Utwórz projekt Firebase

Zanim będziesz mógł dodać Firebase do swojej aplikacji na Androida, musisz utworzyć projekt Firebase, aby połączyć się z tą aplikacją na Androida. Odwiedź stronę Poznaj projekty Firebase, aby dowiedzieć się więcej o projektach Firebase.

Zarejestruj swoją aplikację 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. Przejdź do konsoli Firebase .

  2. Na środku strony przeglądu projektu kliknij ikonę Androida ( ) lub Dodaj aplikację , aby uruchomić proces konfiguracji.

  3. Wpisz nazwę pakietu aplikacji w polu nazwy pakietu Androida .

  4. (Opcjonalnie) Wprowadź inne informacje o aplikacji: pseudonim aplikacji i certyfikat podpisywania debugowania SHA-1 .

  5. Kliknij opcję Zarejestruj aplikację .

Dodaj plik konfiguracyjny Firebase

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

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

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

  2. Aby wartości w pliku konfiguracyjnym google-services.json były dostępne dla zestawów SDK Firebase, potrzebujesz wtyczki Gradle usług Google ( google-services ).

    1. W pliku Gradle na poziomie głównym (na 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.1" 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.1' 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'
        // ...
      }
      

Dodaj pakiety SDK Firebase do swojej aplikacji

  1. W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle ) dodaj zależność dla chmury Firebase Biblioteka wiadomości dla Androida. Zalecamy używanie Firebase Android BoM do kontrolowania wersji bibliotek.

    Aby zapewnić optymalne działanie Firebase Cloud Messaging, zalecamy włączenie Google Analytics w projekcie Firebase i dodanie pakietu SDK Firebase dla Google Analytics do swojej aplikacji.

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

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

    (Alternatywa) Dodaj zależności biblioteki Firebase bez użycia 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 używanie BoM do zarządzania wersjami bibliotek, co gwarantuje, że wszystkie wersje będą kompatybilne.

    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:23.4.1")
        implementation("com.google.firebase:firebase-analytics:21.6.1")
    }
    
    Szukasz modułu bibliotecznego specyficznego dla Kotlina? Począwszy od października 2023 r. (Firebase BoM 32.5.0) zarówno programiści Kotlin, jak i Java mogą polegać na głównym module biblioteki (więcej informacji można znaleźć w często zadawanych pytaniach dotyczących tej inicjatywy ).

  2. Zsynchronizuj swój projekt na Androida z plikami Gradle.

Uzyskaj dostęp do tokena rejestracyjnego

Aby wysłać wiadomość na konkretne urządzenie, musisz znać token rejestracji tego urządzenia. Ponieważ aby ukończyć ten samouczek, konieczne będzie wprowadzenie tokenu w polu w konsoli powiadomień, pamiętaj o skopiowaniu tokenu lub bezpiecznym przechowywaniu go po pobraniu.

Podczas pierwszego uruchomienia aplikacji zestaw FCM SDK generuje token rejestracji 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 opisano, jak odzyskać token i jak monitorować zmiany w tokenie. Ponieważ token może zostać obrócony po pierwszym uruchomieniu, zdecydowanie zaleca się pobranie najnowszego zaktualizowanego tokena rejestracyjnego.

Token rejestracyjny może ulec zmianie w przypadku:

  • Aplikacja zostanie przywrócona na nowym urządzeniu
  • Użytkownik odinstalowuje/ponownie instaluje aplikację
  • Użytkownik czyści dane aplikacji.

Pobierz bieżący token rejestracji

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

Kotlin+KTX

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

Monitoruj generowanie tokenów

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

Kotlin+KTX

/**
 * 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 tokenu możesz wysłać go na serwer aplikacji i zapisać przy użyciu preferowanej metody.

Wyślij wiadomość z powiadomieniem testowym

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

  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ść, wybierz opcję Utwórz pierwszą kampanię .

    1. Wybierz Wiadomości z powiadomieniami Firebase i wybierz Utwórz .
  5. W przeciwnym razie na zakładce Kampanie wybierz Nowa kampania , a następnie Powiadomienia .

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

  7. Wybierz opcję Wyślij wiadomość testową w prawym okienku.

  8. W polu Dodaj token rejestracyjny FCM wpisz token rejestracyjny uzyskany w poprzedniej części tego przewodnika.

  9. Wybierz Testuj .

Po wybraniu opcji Testuj docelowe urządzenie klienckie (z aplikacją działającą w tle) powinno otrzymać powiadomienie.

Wgląd w dostarczanie wiadomości do aplikacji znajdziesz w panelu raportowania FCM , który rejestruje liczbę wiadomości wysłanych i otwartych na urządzeniach Apple i Android, wraz z danymi dotyczącymi „wyświetleń” (powiadomień widocznych przez użytkowników) w przypadku aplikacji na Androida.

Następne kroki

Wysyłaj wiadomości do aplikacji na pierwszym planie

Po pomyślnym wysłaniu wiadomości z powiadomieniami, gdy aplikacja działa w tle, zobacz Odbieranie wiadomości w aplikacji na Androida, aby rozpocząć wysyłanie wiadomości do aplikacji na pierwszym planie.

Wyjdź poza powiadomienia

Aby wyjść poza powiadomienia i dodać inne, bardziej zaawansowane zachowania do swojej aplikacji, zobacz: