Aby rozpocząć korzystanie z FCM, opracuj najprostszy przypadek użycia: wysłanie testowego powiadomienia z kompozytora powiadomień do urządzenia programistycznego, gdy aplikacja działa w tle na urządzeniu. Ta strona zawiera listę wszystkich kroków, które należy wykonać, aby to osiągnąć, od konfiguracji po weryfikację — może obejmować kroki, które już wykonałeś, jeśli masz skonfigurowaną aplikację kliencką na Androida dla FCM.
Skonfiguruj zestaw SDK
W tej sekcji opisano zadania, które mogłeś wykonać, jeśli w swojej aplikacji masz już 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:
- Celuje w interfejs API poziomu 19 (KitKat) lub wyższy
- Używa Androida 4.4 lub nowszego
- Używa Jetpack (AndroidX) , co obejmuje spełnienie następujących wymagań dotyczących wersji:
-
com.android.tools.build:gradle
w wersji 3.2.1 lub nowszej -
compileSdkVersion
28 lub nowszy
-
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 urządzenie lub emulator miał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 tylko wypróbować produkt Firebase, możesz pobrać jedną z naszych szybkich próbek .
Utwórz projekt Firebase
Zanim dodasz Firebase do swojej aplikacji na Androida, musisz utworzyć projekt Firebase, aby połączyć się z aplikacją na Androida. Odwiedź stronę 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ć swoją aplikację w projekcie Firebase. Rejestracja aplikacji jest często nazywana „dodawaniem” aplikacji do projektu.
Przejdź do konsoli Firebase .
Na środku strony przeglądu projektu kliknij ikonę Androida (
) lub Dodaj aplikację , aby uruchomić proces konfiguracji.Wpisz nazwę pakietu swojej aplikacji w polu Nazwa pakietu Androida .
Nazwa pakietu jednoznacznie identyfikuje Twoją aplikację na urządzeniu i w Sklepie Google Play.
Nazwa pakietu jest często określana jako identyfikator aplikacji .
Znajdź nazwę pakietu swojej aplikacji w pliku Gradle modułu (na poziomie aplikacji), zwykle
app/build.gradle
(przykładowa nazwa pakietu:com.yourcompany.yourproject
).Pamiętaj, że w nazwie pakietu rozróżniana jest wielkość liter i nie można jej zmienić w tej aplikacji Firebase na Androida po jej zarejestrowaniu w projekcie Firebase.
(Opcjonalnie) Wprowadź inne informacje o aplikacji: pseudonim aplikacji i certyfikat podpisywania debugowania SHA-1 .
Pseudonim aplikacji : wewnętrzny, wygodny identyfikator widoczny tylko dla Ciebie w konsoli Firebase
Certyfikat podpisywania debugowania SHA-1 : hash SHA-1 jest wymagany przez uwierzytelnianie Firebase (podczas korzystania z logowania przez Google lub logowania za pomocą numeru telefonu ) i łączy dynamicznych Firebase .
Kliknij Zarejestruj aplikację .
Dodaj plik konfiguracyjny Firebase
Pobierz, a następnie dodaj plik konfiguracyjny Firebase Android (
) do swojej aplikacji:google-services.json Kliknij Pobierz google-services.json, aby uzyskać plik konfiguracyjny Firebase Android.
Przenieś plik konfiguracyjny do katalogu głównego modułu (na poziomie aplikacji) swojej aplikacji.
Plik konfiguracyjny Firebase zawiera unikalne, ale nietajne identyfikatory Twojego projektu. Aby dowiedzieć się więcej o tym pliku konfiguracyjnym, odwiedź stronę Zrozumienie projektów Firebase .
W dowolnym momencie możesz ponownie pobrać plik konfiguracyjny Firebase .
Upewnij się, że nazwa pliku konfiguracyjnego nie zawiera dodatkowych znaków, takich jak
(2)
.
Aby wartości w pliku konfiguracyjnym
były dostępne dla zestawów SDK Firebase, potrzebujesz wtyczki Google Services Gradle (google-services.json google-services
).W pliku Gradle na poziomie głównym (na poziomie projektu) (
<project>/build.gradle
) dodaj wtyczkę usług Google jako zależność buildscript:buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... // Add the dependency for the Google services Gradle plugin classpath 'com.google.gms:google-services:4.3.15' } } allprojects { ... repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } }
W pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle
) dodaj wtyczkę usług Google:plugins { id 'com.android.application' // Add the Google services Gradle plugin id 'com.google.gms.google-services' ... }
Dodaj pakiety SDK Firebase do swojej aplikacji
W pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle
) dodaj zależność dla biblioteki Firebase Cloud Messaging Android. Zalecamy używanie Firebase Android BoM do kontrolowania wersji bibliotek.Aby optymalnie korzystać z usługi Firebase Cloud Messaging, zalecamy włączenie Google Analytics w projekcie Firebase i dodanie pakietu Firebase SDK dla Google Analytics do swojej aplikacji.
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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ć 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 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.1.2' implementation 'com.google.firebase:firebase-analytics:21.3.0' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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-ktx' implementation 'com.google.firebase:firebase-analytics-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 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-ktx:23.1.2' implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0' }
Synchronizuj swój projekt na Androida z plikami Gradle.
Kompilacje Gradle korzystające z wtyczki Android Gradle (AGP) w wersji 4.2 lub starszej muszą włączyć obsługę języka Java 8. W przeciwnym razie te projekty na Androida dostaną błąd kompilacji podczas dodawania pakietu Firebase SDK.
Aby naprawić ten błąd kompilacji, możesz skorzystać z jednej z dwóch opcji:
- Dodaj wymienione
compileOptions
z komunikatu o błędzie do plikubuild.gradle
na poziomie aplikacji . - Zwiększ
minSdkVersion
dla swojego projektu Android do 26 lub więcej.
Dowiedz się więcej o tym niepowodzeniu kompilacji w tym FAQ .
- Dodaj wymienione
Uzyskaj dostęp do tokena rejestracji
Aby wysłać wiadomość do określonego urządzenia, musisz znać token rejestracji tego urządzenia. Ponieważ aby ukończyć ten samouczek, musisz wprowadzić token w polu w konsoli powiadomień, pamiętaj, aby skopiować token lub bezpiecznie go przechowywać 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 tokenu, rozszerzając FirebaseMessagingService
i zastępując onNewToken
.
W tej sekcji opisano, jak pobrać token i jak monitorować zmiany w tokenie. Ponieważ token może zostać obrócony po początkowym uruchomieniu, zdecydowanie zaleca się pobranie najnowszego zaktualizowanego tokenu rejestracji.
Token rejestracji może ulec zmianie, gdy:
- 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 musisz 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(); } });
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 tokena możesz wysłać go na serwer aplikacji i przechowywać przy użyciu preferowanej metody.
Wyślij wiadomość z powiadomieniem testowym
Zainstaluj i uruchom aplikację na urządzeniu docelowym. Na urządzeniach Apple musisz zaakceptować prośbę o pozwolenie na otrzymywanie zdalnych powiadomień.
Upewnij się, że aplikacja działa w tle na urządzeniu.
W konsoli Firebase otwórz stronę Wiadomości .
Jeśli to Twoja pierwsza wiadomość, wybierz Utwórz swoją pierwszą kampanię .
- Wybierz Wiadomości powiadomień Firebase i wybierz Utwórz .
W przeciwnym razie na karcie Kampanie wybierz Nowa kampania , a następnie Powiadomienia .
Wprowadź treść wiadomości. Wszystkie pozostałe pola są opcjonalne.
Wybierz Wyślij wiadomość testową z prawego okienka.
W polu Dodaj token rejestracji FCM wprowadź token rejestracji uzyskany w poprzedniej sekcji tego przewodnika.
Wybierz opcję Testuj .
Po wybraniu opcji Test docelowe urządzenie klienckie (z aplikacją w tle) powinno otrzymać powiadomienie.
Wgląd w dostarczanie wiadomości do Twojej aplikacji znajdziesz w panelu raportowania FCM , który rejestruje liczbę wiadomości wysłanych i otwartych na urządzeniach Apple i Android, a także dane dotyczące „wyświetleń” (powiadomień widzianych przez użytkowników) dla aplikacji na Androida.
Następne kroki
Wysyłaj wiadomości do aplikacji na pierwszym planie
Po pomyślnym wysłaniu powiadomień, gdy aplikacja działa w tle, zobacz Odbieranie wiadomości w aplikacji na Androida, aby rozpocząć wysyłanie do aplikacji działających na pierwszym planie.
Wyjdź poza powiadomienia
Aby wyjść poza powiadomienia i dodać inne, bardziej zaawansowane zachowanie do aplikacji, zobacz: