Konfigurowanie aplikacji klienckiej Komunikacja w chmurze Firebase (FCM) we Flutter

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.

  1. Otwórz obszar roboczy projektu Xcode (ios/Runner.xcworkspace).
  2. Włącz powiadomienia push.
  3. 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

  1. W projekcie w konsoli Firebase kliknij ikonę koła zębatego, Ustawienia projektu i wybierz kartę Komunikacja w chmurze.
  2. Kliknij przycisk Prześlij certyfikat dla swojego certyfikatu programistycznego. certyfikatu produkcyjnego. Trzeba podać co najmniej jedną.
  3. 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
  1. Otwórz Komunikację w chmurze. panelu Ustawienia w konsoli Firebase i przewiń do Konfiguracja witryny.

  2. 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:

  1. Otwórz Komunikację w chmurze. panelu Ustawienia w konsoli Firebase i przewiń do Konfiguracja witryny.

  2. Na karcie Web Push Certificate znajdź i wybierz tekst linku „importuj”. istniejącej pary kluczy”.

  3. 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

  1. Instalowanie i inicjowanie wtyczek Firebase dla Flutter jeśli jeszcze nie zostało to zrobione.

  2. W katalogu głównym projektu Flutter uruchom poniższe polecenie, aby zainstalować wtyczka:

    flutter pub add firebase_messaging
    
  3. 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: