Omówienie architektury FCM

FCM korzysta z tych komponentów, które tworzą, przesyłają i odbierają wiadomości:

  1. Narzędzia do tworzenia próśb o wiadomości. Kreator powiadomień zapewnia opcję opartą na GUI do tworzenia żądań powiadomień. Aby uzyskać pełną automatyzację i obsługę wszystkich rodzajów wiadomości, musisz tworzyć żądania wiadomości w zaufanym środowisku serwera, które obsługuje pakiet Firebase Admin SDK lub protokół serwera FCM. Może to być Cloud Functions dla FirebaseApp Engine lub własny serwer aplikacji.

    Schemat 3 warstw architektury opisanych na tej stronie.

  2. Backend FCM, który (między innymi) akceptuje żądania wysyłania 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ść na docelowe urządzenie, obsługuje dostarczanie wiadomości i w odpowiednich przypadkach stosuje konfigurację specyficzną dla platformy. Ta warstwa transportowa obejmuje:

    • Warstwa transportowa Androida (ATL) na urządzenia z Androidem i Usługami Google Play
    • usługa Apple Push Notification (APNs) na urządzeniach Apple,
    • Protokół powiadomień Web Push dla aplikacji internetowych

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

Proces cyklu życia

  • Rejestrowanie urządzeń w celu otrzymywania wiadomości z FCM Instancja aplikacji klienta rejestruje się, aby otrzymywać wiadomości, i uzyskuje token rejestracji, który jednoznacznie ją identyfikuje.
  • Wysyłanie i odbieranie wiadomości do urządzenia.
    • Wyślij wiadomość. Serwer aplikacji wysyła wiadomości do aplikacji klienckiej:
      1. Wiadomość jest tworzona w kompozytorze powiadomień lub w zaufanym środowisku, a do backendu FCM wysyłane jest żądanie wiadomości.
      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 niego przez warstwę transportową specyficzną dla platformy.
      4. Aplikacja kliencka na urządzeniu otrzymuje wiadomość lub powiadomienie.