Aby rozpocząć korzystanie z FCM, zaimplementuj najprostszy przypadek użycia: wysyłanie testowego powiadomienia z komponowania powiadomień na urządzenie programistyczne, gdy aplikacja działa w tle. Na tej stronie znajdziesz listę wszystkich czynności wymaganych do osiągnięcia tego celu – od konfiguracji po weryfikację – może ona obejmować czynności już wykonane, jeśli masz skonfigurowaną aplikację kliencką 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):
- jest kierowana na poziom API 21 (Lollipop) lub wyższy;
- Urządzenie z Androidem w wersji 5.0 lub nowszej,
- Korzysta z Jetpack (AndroidX), który obejmuje te wymagania wersji:
com.android.tools.build:gradle
w wersji 7.3.0 lub nowszejcompileSdkVersion
28 lub nowsza
Aby uruchomić aplikację, skonfiguruj urządzenie fizyczne lub użyj emulatora.
Pamiętaj, że pakiety SDK Firebase zależne od Usług Google Play wymagają zainstalowania na urządzeniu lub emulatorze Usług Google Play.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, który będzie połączony z aplikacją na Androida. Więcej informacji o projektach Firebase znajdziesz w artykule Omówienie projektów Firebase.
Rejestrowanie aplikacji w Firebase
Aby używać Firebase w swojej aplikacji na Androida, musisz ją zarejestrować w projekcie Firebase. Rejestracja aplikacji często nazywa się „dodaniem” jej do projektu.
Otwórz konsolę Firebase.
W centrum strony „Opis” projektu kliknij ikonę Androida (
) lub Dodaj aplikację, aby uruchomić proces konfiguracji.W polu Nazwa pakietu na Androida wpisz nazwę pakietu aplikacji.
(Opcjonalnie) Wpisz inne informacje o aplikacji: Pseudonim aplikacji i Certyfikat podpisywania debugowania SHA-1.
Kliknij Zarejestruj aplikację.
Dodawanie pliku konfiguracji Firebase
Pobierz plik konfiguracji Firebase na Androida (
) i dodaj go do aplikacji:google-services.json Kliknij Pobierz plik google-services.json, aby pobrać plik konfiguracji Firebase na Androida.
Przenieś plik konfiguracji do głównego katalogu modułu (poziom aplikacji).
Aby udostępnić wartości w pliku konfiguracyjnym
pakietom SDK Firebase, musisz mieć wtyczkę Gradle dla usług Google (google-services.json google-services
).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.2" 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.2' apply false }
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
W 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.6.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") }
Dzięki użyciu Firebase Android BoMaplikacja zawsze będzie używać zgodnych wersji bibliotek Firebase na Androida.
(Alternatywnie) Dodaj zależności biblioteki Firebase bez używania pakietu BoM
Jeśli zdecydujesz się nie używać obiektu Firebase BoM, musisz określić każdą wersję biblioteki Firebase w wierszu 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.1.2") }
Synchronizuj projekt 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 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 jak monitorować zmiany w tokenie. Ponieważ token może zostać poddany rotacji 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/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+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(); } });
Monitorowanie generowania tokenów
Funkcja zwracana onNewToken
jest wywoływana 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 tokena możesz go wysłać na serwer aplikacji i zapisać go za pomocą preferowanej metody.
Wysyłanie testowego powiadomienia
Zainstaluj aplikację na urządzeniu docelowym i uruchom ją. Na urządzeniach Apple musisz zaakceptować prośbę o zezwolenie na otrzymywanie powiadomień zdalnych.
Upewnij się, że aplikacja działa w tle na urządzeniu.
W konsoli Firebase otwórz stronę Komunikacja.
Jeśli to Twoja pierwsza wiadomość, kliknij Utwórz pierwszą kampanię.
- Wybierz Powiadomienia Firebase i kliknij Utwórz.
W przeciwnym razie na karcie Kampanie kliknij kolejno Nowa kampania i Powiadomienia.
Wpisz tekst wiadomości. Pozostałe pola są opcjonalne.
W prawym okienku kliknij Wyślij wiadomość testową.
W polu Dodaj token rejestracji FCM wpisz token rejestracji uzyskany w poprzedniej sekcji tego przewodnika.
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
Jeśli chcesz wyjść poza powiadomienia i dodać do aplikacji inne, bardziej zaawansowane funkcje, przeczytaj te artykuły: