Omówienie architektury FCM

FCM korzysta z tych komponentów, które służą do tworzenia, przesyłania i odbierania wiadomości:

  1. Narzędzia do tworzenia lub generowania żądań wiadomości. Kreator powiadomień umożliwia tworzenie żądań powiadomień za pomocą interfejsu GUI. Aby uzyskać pełną automatyzację i obsługę wszystkich typów wiadomości, musisz tworzyć żądania wiadomości w zaufanym środowisku serwera które obsługuje pakiet Firebase Admin SDK lub protokół serwera FCM. Takim środowiskiem mogą być Cloud Functions dla Firebase, App Engine, lub Twój własny serwer aplikacji.

    Schemat 3 warstw architektury opisanych na tej stronie.

  2. Backend FCM, który (między innymi) akceptuje żądania wiadomości, rozsyła wiadomości za pomocą tematów i generuje metadane wiadomości, takie jak identyfikator wiadomości.

  3. Warstwa transportowa na poziomie platformy, która kieruje wiadomość do docelowego urządzenia, obsługuje dostarczanie wiadomości i w razie potrzeby stosuje konfigurację specyficzną dla platformy. Ta warstwa transportowa obejmuje:

    • warstwę transportową Androida (ATL) dla urządzeń z Androidem i Usługami Google Play;
    • usługę Apple Push Notification (APNs) dla urządzeń Apple;
    • protokół Web Push dla aplikacji internetowych.

  4. Pakiet SDK FCM na urządzeniu użytkownika, na którym wyświetlane jest powiadomienie lub obsługiwana jest wiadomość zgodnie ze stanem aplikacji (na pierwszym planie lub w tle) i odpowiednią logiką aplikacji.

Cykl życia

  • Rejestrowanie urządzeń do odbierania wiadomości z FCM. Instancja aplikacji klienckiej rejestruje się, aby odbierać wiadomości, uzyskując token rejestracji, który jednoznacznie identyfikuje instancję aplikacji.
  • Wysyłanie i odbieranie wiadomości wysyłanych z serwera do klienta.
    • Wyślij wiadomość. Serwer aplikacji wysyła wiadomości do aplikacji klienckiej:
      1. Wiadomość jest tworzona w Edytorze powiadomień lub w zaufanym środowisku, a żądanie wiadomości jest wysyłane do backendu FCM.
      2. Backend FCM odbiera żądanie wiadomości, generuje identyfikator wiadomości i inne metadane oraz wysyła je do warstwy transportowej specyficznej dla platformy.
      3. Gdy urządzenie jest online, wiadomość jest wysyłana do urządzenia za pomocą warstwy transportowej specyficznej dla platformy.
      4. Na urządzeniu aplikacja kliencka odbiera wiadomość lub powiadomienie.