Aby rozpocząć pracę z FCM, zbuduj najprostszy przypadek użycia: wysył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, aby to osiągnąć, od konfiguracji po weryfikację — może obejmować kroki, które już wykonałeś, jeśli masz skonfigurowaną aplikację kliencką dla systemu Android dla FCM.
Skonfiguruj pakiet SDK
W tej sekcji opisano zadania, które mogłeś wykonać, jeśli masz już 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:
- Targets API level 19 (KitKat) lub wyższy
- Używa Androida 4.4 lub nowszego
- Używa Jetpack (AndroidX) , który obejmuje spełnienie następujących wymagań wersji:
-
com.android.tools.build:gradle
v3.2.1 lub nowszy -
compileSdkVersion
28 lub nowszą
-
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ą, 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, a chcesz tylko wypróbować produkt Firebase, możesz pobrać jeden z naszych przykładów szybkiego startu .
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ź Zrozumienie projektów Firebase , aby dowiedzieć się więcej o projektach Firebase.
Zarejestruj swoją aplikację w Firebase
Aby korzystać z Firebase w swojej 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ć przepływ pracy instalacji.Wpisz nazwę pakietu swojej aplikacji w polu Nazwa pakietu Androida .
Nazwa pakietu jednoznacznie identyfikuje Twoją aplikację na urządzeniu oraz 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 wartości nazwy pakietu rozróżniana jest wielkość liter i nie można jej zmienić dla tej aplikacji Firebase na Androida po jej zarejestrowaniu w projekcie Firebase.
(Opcjonalnie) Podaj inne informacje o aplikacji: pseudonim aplikacji i certyfikat podpisywania debugowania SHA-1 .
Pseudonim aplikacji : wewnętrzny, wygodny identyfikator, który jest widoczny tylko dla Ciebie w konsoli Firebase
Certyfikat podpisywania debugowania SHA-1 : Uwierzytelnianie Firebase (w przypadku logowania się przez Google lub logowanie za pomocą numeru telefonu ) i Linki dynamiczne Firebase wymaga skrótu SHA-1 .
Kliknij Zarejestruj aplikację .
Dodaj plik konfiguracyjny Firebase
Dodaj plik konfiguracyjny Firebase Android do swojej aplikacji:
Kliknij Pobierz google-services.json, aby uzyskać plik konfiguracyjny Firebase Android (
).google-services.json Przenieś plik konfiguracyjny do katalogu modułu (na poziomie aplikacji) swojej aplikacji.
Plik konfiguracyjny Firebase zawiera unikalne, ale nie tajne 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 włączyć produkty Firebase w swojej aplikacji, dodaj wtyczkę google-services do swoich plików Gradle.
W pliku Gradle na poziomie głównym (na poziomie projektu) (
build.gradle
) dodaj reguły, aby uwzględnić wtyczkę Google Services Gradle. Sprawdź również, czy masz repozytorium Maven firmy Google.buildscript { repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository } dependencies { // ... // Add the following line: classpath 'com.google.gms:google-services:4.3.13' // Google Services plugin } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
W pliku Gradle modułu (na poziomie aplikacji) (zwykle
app/build.gradle
) zastosuj wtyczkę Google Services Gradle:apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Dodaj pakiety SDK Firebase do swojej aplikacji
Za pomocą Firebase Android BoM zadeklaruj zależność dla biblioteki Firebase Cloud Messaging dla systemu Android w pliku Gradle modułu (na poziomie aplikacji) (zwykle
app/build.gradle
).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.
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.1.0') // Declare 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 używać zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Zadeklaruj zależności biblioteki Firebase bez użycia BoM
Jeśli zdecydujesz się nie korzystać z BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Pamiętaj, że jeśli korzystasz z wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.
dependencies { // Declare 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.0.6' implementation 'com.google.firebase:firebase-analytics:21.0.0' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.1.0') // Declare 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 używać zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Zadeklaruj zależności biblioteki Firebase bez użycia BoM
Jeśli zdecydujesz się nie korzystać z BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.
Pamiętaj, że jeśli korzystasz z wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.
dependencies { // Declare 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.0.6' implementation 'com.google.firebase:firebase-analytics-ktx:21.0.0' }
Zsynchronizuj swoją aplikację, aby upewnić się, że wszystkie zależności mają niezbędne wersje.
Kompilacje Gradle, które korzystają z wtyczki Android Gradle (AGP) w wersji 4.2 lub wcześniejszej, wymagają włączenia obsługi języka Java 8. W przeciwnym razie podczas dodawania pakietu Firebase SDK w tych projektach na Androida kończy się niepowodzenie kompilacji.
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 projektu Androida 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ść na określone urządzenie, 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 jego pobraniu.
Podczas początkowego uruchamiania aplikacji FCM SDK generuje token rejestracji dla wystąpienia 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 pobrać token i jak monitorować zmiany w tokenie. Ponieważ token może zostać obrócony po pierwszym uruchomieniu, zdecydowanie zaleca się pobranie najnowszego zaktualizowanego tokena rejestracji.
Token rejestracyjny może ulec zmianie, gdy:
- Aplikacja zostanie przywrócona na nowym urządzeniu
- Użytkownik odinstalowuje/ponownie instaluje aplikację
- Użytkownik usuwa dane aplikacji.
Pobierz aktualny token rejestracji
Kiedy musisz pobrać bieżący token, wywołaj FirebaseMessaging.getInstance().getToken()
:
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(); } });
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() })
Monitoruj generowanie tokenów
Wywołanie zwrotne onNewToken
jest uruchamiane za każdym razem, gdy generowany jest nowy 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); }
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) }
Po uzyskaniu tokena możesz wysłać go na serwer aplikacji i przechowywać przy użyciu preferowanej metody.
Wyślij testową wiadomość z powiadomieniem
Zainstaluj i uruchom aplikację na urządzeniu docelowym.
Upewnij się, że aplikacja działa w tle na urządzeniu.
Otwórz edytor powiadomień i wybierz Nowe powiadomienie .
Wpisz tekst wiadomości.
Wybierz opcję Wyślij wiadomość testową .
W polu oznaczonym Dodaj token rejestracji FCM wprowadź token rejestracji uzyskany w poprzedniej części tego przewodnika.
Kliknij Test
Po kliknięciu Test , docelowe urządzenie klienckie (z aplikacją w tle) powinno otrzymać powiadomienie w zasobniku powiadomień systemowych .
Aby uzyskać wgląd w dostarczanie wiadomości do Twojej aplikacji, zobacz panel 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ń widzianych 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 do aplikacji działających na pierwszym planie.
Wyjdź poza powiadomienia
Aby wyjść poza powiadomienia i dodać inne, bardziej zaawansowane zachowanie do swojej aplikacji, zobacz: