FCM jest wstecznie kompatybilny z GCM. Kroki konfiguracji FCM na AWS są identyczne z procedurą konfiguracji GCM i (przynajmniej na razie) FCM działa w sposób przejrzysty z GCM i SNS w odniesieniu do konfiguracji po stronie serwera.
Jeśli jednak wysyłasz data
ładunki do urządzenia z systemem Android, nie będą one przetwarzane, chyba że zaimplementujesz usługę po stronie klienta, która rozszerza FirebaseMessagingService
. Domyślny generator komunikatów JSON w konsoli AWS wysyła data
komunikaty, które będą ignorowane przez Twoją aplikację, chyba że wspomniana usługa zostanie zaimplementowana. Aby obejść ten problem podczas wstępnych testów, możesz podać niestandardowy notification
ładunek, który zostanie odebrany przez Twoje urządzenie (o ile Twoja aplikacja nie znajduje się na pierwszym planie)
Istnieją instrukcje migracji GCM-FCM dostarczone przez Google, jednak zmiany, które musisz wprowadzić, dotyczą głównie strony aplikacji.
Kroki, które musisz wykonać, aby przetestować GCM / FCM w swojej aplikacji za pomocą SNS, to:
- Utwórz aplikację platformy w SNS , wybierając Google Cloud Messaging (GCM) jako platformę powiadomień push i podając klucz API serwera w polu API key .
- Wybierz aplikację platformy i kliknij przycisk Utwórz punkt końcowy platformy .
- Podaj identyfikator wystąpienia ( token urządzenia ) wygenerowany przez aplikację. Musisz przedłużyć
FirebaseInstanceIDService
i zastąpić onTokenRefresh
metodę, aby zobaczyć to w aplikacji na Androida. Kiedy już to zrobisz , odinstaluj i ponownie zainstaluj aplikację, a token powinien zostać wydrukowany w konsoli debugowania w Android Studio przy pierwszym uruchomieniu.
- Kliknij Dodaj punkt końcowy .
- Kliknij łącze ARN dla swojej aplikacji platformy.
- Wybierz nowo utworzony punkt końcowy dla swojego urządzenia i kliknij punkt Publikuj w punkcie końcowym .
- Wybierz format wiadomości JSON i kliknij plik przycisk generatora wiadomości JSON .
- Wpisz wiadomość testową i kliknij Generuj JSON przycisk
- Teraz czas na część „gotcha”.
Wiadomość generowana przez SNS będzie miała postać:
{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}
Jak wspomnieliśmy wcześniej, data
ładunki będą ignorowane, jeśli nie zaimplementowano żadnej usługi do ich odbierania. Chcielibyśmy testować bez pisania zbyt dużej ilości kodu, więc zamiast tego powinniśmy wysłać notification
ładunek. Aby to zrobić, po prostu zmień wiadomość JSON na:
{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}
Gdy to zrobisz, upewnij się, że Twoja aplikacja nie jest uruchomiona na urządzeniu, i naciśnij przycisk Opublikuj wiadomość . Powinieneś teraz zobaczyć powiadomienie wyskakujące na twoim urządzeniu.
Oczywiście możesz to wszystko zrobić programowo za pośrednictwem Amazon SNS API, jednak wszystkie przykłady wydają się używać data
ładunku, więc musisz o tym pamiętać i wygenerować ładunek odpowiedni dla twojego przypadku użycia.