Wykonaj te czynności, aby skonfigurować klienta FCM w Flutter.
Konfiguracja i wymagania dotyczące konkretnej platformy
Niektóre wymagane kroki zależą od platformy, na którą kierujesz reklamy.
iOS+
Włącz funkcje aplikacji w Xcode
Aby Twoja aplikacja mogła otrzymywać wiadomości, musisz włączyć push powiadomień i trybów działania w tle w projekcie Xcode.
- Otwórz obszar roboczy projektu Xcode (
ios/Runner.xcworkspace
). - Włącz powiadomienia push.
- Włącz Pobieranie w tle oraz Powiadomienia zdalne. trybach wykonywania w tle.
Prześlij klucz uwierzytelniania APNs
Zanim zaczniesz korzystać z FCM, prześlij swój certyfikat APNs do Firebase. Jeśli nie chcesz masz już certyfikat APNs, utwórz go Apple Developer Member Center
- W projekcie w konsoli Firebase kliknij ikonę koła zębatego, Ustawienia projektu i wybierz kartę Komunikacja w chmurze.
- Kliknij przycisk Prześlij certyfikat dla swojego certyfikatu programistycznego. certyfikatu produkcyjnego. Trzeba podać co najmniej jedną.
- Dla każdego certyfikatu wybierz plik .p12 i podaj hasło, jeśli dowolne. Upewnij się, że identyfikator pakietu tego certyfikatu jest zgodny z identyfikatorem pakietu do aplikacji. Kliknij Zapisz.
Dostosowywanie metod
Aby korzystać z wtyczki FCM Flutter na urządzeniach Apple, nie możesz wyłączyć metody szybko puszczają głowę. Swizzing jest wymagany, a bez niego kluczowe funkcje Firebase, takie jak Obsługa tokenów FCM nie działa prawidłowo.
Android
Usługi Google Play
Klienty FCM wymagają urządzeń z Androidem 4.4 lub nowszym, na których są też zainstalowane usługi Google Zainstalowane Usługi Google Play lub emulator Androida 4.4 z interfejsami API Google. Pamiętaj, że nie tylko możesz wdrażać aplikacje na Androida przez Google Play Sklep.
Aplikacje korzystające z pakietu SDK Usług Google Play powinny zawsze sprawdzać, czy na urządzeniu nie ma
zgodny plik APK Usług Google Play przed uzyskaniem dostępu do Usług Google Play.
funkcje zabezpieczeń. Zalecamy zrobić to w 2 miejscach: w sekcji głównej aktywności
onCreate()
i onResume()
. Miejsce zameldowania: onCreate()
zapewnia, że aplikacji nie będzie można użyć bez pomyślnego sprawdzenia. Zameldowanie
onResume()
zapewnia, że jeśli użytkownik wróci do działającej aplikacji przez
w inny sposób, np. za pomocą przycisku Wstecz, weryfikacja jest nadal przeprowadzana.
Jeśli urządzenie nie ma zgodnej wersji Usług Google Play,
może wywołać metodę GoogleApiAvailability.makeGooglePlayServicesAvailable()
, aby umożliwić użytkownikom pobieranie Usług Google Play ze Sklepu Play.
Sieć
Konfigurowanie danych logowania w przeglądarce w FCM
Interfejs internetowy FCM używa danych logowania w przeglądarce o nazwie „Voluntary Application Server” Identyfikacja”, lub „VAPID” klucze, do autoryzowania żądań wysyłania do obsługiwanych stron internetowych usług push. Aby zasubskrybować powiadomienia push w aplikacji, musisz: powiązać parę kluczy z projektem Firebase. Możesz wygenerować nową parę kluczy lub zaimportuj istniejącą, za pomocą konsoli Firebase.
Generowanie nowej pary kluczy
Otwórz Komunikację w chmurze. panelu Ustawienia w konsoli Firebase i przewiń do Konfiguracja witryny.
Na karcie Certyfikaty Web Push kliknij Wygeneruj parę kluczy. wyświetli się powiadomienie o wygenerowaniu pary kluczy oraz ciągu klucza publicznego i daty dodania.
Importuj istniejącą parę kluczy
Jeśli masz parę kluczy, której używasz już w swojej aplikacji internetowej, możesz zaimportować go do FCM, aby mieć dostęp do istniejącej aplikacji internetowej przez interfejsy FCM API. Aby zaimportować klucze, musisz mieć dostęp do projektu Firebase na poziomie właściciela. Zaimportuj swoje publiczne pliki oraz klucz prywatny w formie bezpiecznego zakodowanego adresu URL w base64:
Otwórz Komunikację w chmurze. panelu Ustawienia w konsoli Firebase i przewiń do Konfiguracja witryny.
Na karcie Web Push Certificate znajdź i wybierz tekst linku „importuj”. istniejącej pary kluczy”.
W oknie Importuj parę kluczy podaj klucz publiczny i prywatny w odpowiednie pola i kliknij Importuj. W konsoli jest wyświetlana ciągu klucza publicznego i daty dodania.
Więcej informacji o formacie kluczy i sposobie ich generowania znajdziesz w artykule zobacz Klucze serwera aplikacji.
Zainstaluj wtyczkę FCM
Instalowanie i inicjowanie wtyczek Firebase dla Flutter jeśli jeszcze nie zostało to zrobione.
W katalogu głównym projektu Flutter uruchom poniższe polecenie, aby zainstalować wtyczka:
flutter pub add firebase_messaging
Po zakończeniu ponownie skompiluj aplikację Flutter:
flutter run
Dostęp do tokena rejestracji
Aby wysłać wiadomość na konkretne urządzenie, musisz znać token rejestracji. Należy go podać w polu w konsoli powiadomień, aby ukończyć ten samouczek; skopiuj token lub bezpiecznie przechowywać po pobraniu.
Aby pobrać bieżący token rejestracji instancji aplikacji, wywołaj
getToken()
Jeśli zgoda na wyświetlanie powiadomień nie została przyznana, ta metoda
i poproś go o zgodę na wyświetlanie powiadomień. W przeciwnym razie zwraca token lub
odrzuca przyszłość z powodu błędu.
// You may set the permission requests to "provisional" which allows the user to choose what type
// of notifications they would like to receive once the user receives a notification.
final notificationSettings = await FirebaseMessaging.instance.requestPermission(provisional: true);
// For apple platforms, ensure the APNS token is available before making any FCM plugin API calls
final apnsToken = await FirebaseMessaging.instance.getAPNSToken();
if (apnsToken != null) {
// APNS token is available, make FCM plugin API requests...
}
W przypadku platform internetowych przekaż klucz publiczny VAPID do getToken()
:
final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");
Aby otrzymywać powiadomienia o każdej aktualizacji tokena, zasubskrybuj onTokenRefresh
strumień:
FirebaseMessaging.instance.onTokenRefresh
.listen((fcmToken) {
// TODO: If necessary send token to application server.
// Note: This callback is fired at each app startup and whenever a new
// token is generated.
})
.onError((err) {
// Error getting token.
});
Zapobiegaj automatycznemu inicjowaniu
Po wygenerowaniu tokena rejestracji FCM biblioteka przesyła identyfikatora i danych konfiguracji do Firebase. Jeśli wolisz zapobiec automatycznego generowania tokenów, wyłącz automatyczne inicjowanie w czasie kompilacji.
iOS
W systemie iOS dodaj wartość metadanych do pliku Info.plist
:
FirebaseMessagingAutoInitEnabled = NO
Android
Na urządzeniu z Androidem wyłącz zbieranie danych przez Analytics i automatyczne inicjowanie FCM (musisz
wyłącz oba), dodając do AndroidManifest.xml
te wartości metadanych:
<meta-data
android:name="firebase_messaging_auto_init_enabled"
android:value="false" />
<meta-data
android:name="firebase_analytics_collection_enabled"
android:value="false" />
Włącz ponownie automatyczne inicjowanie FCM w czasie działania
Aby włączyć automatyczne inicjowanie dla konkretnej instancji aplikacji, wywołaj setAutoInitEnabled()
:
await FirebaseMessaging.instance.setAutoInitEnabled(true);
Po ustawieniu ta wartość będzie się utrzymywać w przypadku ponownych uruchomień aplikacji.
Dalsze kroki
Po skonfigurowaniu aplikacji klienckiej możesz zacząć wysyłać dane do pobrania wiadomości z Edytor powiadomień. Zapoznaj się z sekcją Wysyłanie wiadomości testowej do aplikacji działającej w tle.
Aby dodać do aplikacji inne, bardziej zaawansowane funkcje, musisz mieć implementacji serwera.
Następnie w aplikacji klienckiej: