Środowisko serwera i FCM

Po stronie serwera Firebase Cloud Messaging znajdują się 2 komponenty:

  • FCM backend udostępniany przez Google.
  • Serwer aplikacji lub inne zaufane środowisko serwera, w którym działa logika serwera, np. Cloud Functions dla Firebase lub inne środowiska w chmurze zarządzane przez Google.

Serwer aplikacji lub zaufane środowisko serwera wysyła żądania wiadomości do backendu FCM, który następnie kieruje wiadomości do aplikacji klienckich działających na urządzeniach użytkowników.

Za pomocą protokołów serwera aplikacji Firebase Admin SDK lub FCM, możesz tworzyć żądania wiadomości i wysyłać je do tych typów miejsc docelowych:

  • Nazwa tematu
  • Warunek
  • Token rejestracji FCM
  • Nazwa grupy urządzeń (tylko protokół)

Możesz wysyłać wiadomości z ładunkiem powiadomienia składającym się z predefiniowanych pól, ładunkiem danych zawierającym własne pola zdefiniowane przez użytkownika lub wiadomości zawierające oba typy ładunków. Więcej informacji znajdziesz w artykule Typy wiadomości.

Wymagania dotyczące zaufanego środowiska serwera

Środowisko serwera aplikacji musi spełniać te kryteria:

  • Możliwość wysyłania prawidłowo sformatowanych żądań wiadomości do FCM backendu.
  • Możliwość obsługiwania żądań i ponownego wysyłania ich przy użyciu algorytmu Exponential back-off.
  • Możliwość bezpiecznego przechowywania danych logowania serwera i tokenów rejestracji klienta.

Dane logowania wymagane w projekcie w Firebase

W zależności od tego, które funkcje FCM wdrożysz, możesz potrzebować tych danych logowania z projektu w Firebase:

Certyfikat Opis
Identyfikator projektu Unikalny identyfikator projektu w Firebase używany w żądaniach do FCM punktu końcowego HTTP v1. Ta wartość jest dostępna w Firebase konsoli Ustawienia panelu.
Token rejestracji Unikalny ciąg znaków tokena, który identyfikuje każdą instancję aplikacji klienckiej. Token rejestracji jest wymagany w przypadku wysyłania wiadomości do pojedynczej instancji aplikacji i grupy urządzeń. Pamiętaj, że tokeny rejestracji muszą być tajne.
Identyfikator nadawcy Unikalna wartość liczbowa utworzona podczas tworzenia projektu w Firebase, dostępna na Cloud Messaging karcie Firebase konsoli Ustawienia panelu. Identyfikator nadawcy jest taki sam jak numer projektu. Identyfikator nadawcy służy do identyfikowania każdego nadawcy, który może wysyłać wiadomości do aplikacji klienckiej.
Token dostępu Krótkotrwały token OAuth 2.0, który autoryzuje żądania do interfejsu HTTP v1 API. Ten token jest powiązany z kontem usługi należącym do Twojego projektu w Firebase. Aby utworzyć i obracać tokeny dostępu, wykonaj czynności opisane w sekcji Autoryzowanie żądań wysyłania.

Wybieranie opcji serwera

Musisz zdecydować, jak chcesz wchodzić w interakcję z FCM serwerami: albo za pomocą Firebase Admin SDK albo za pomocą FCM HTTP v1 API. Pakiet Firebase Admin SDK jest zalecaną metodą, ponieważ obsługuje popularne języki programowania i ma wygodne metody obsługi uwierzytelniania i autoryzacji, Firebase Admin SDK jest zalecaną metodą.

Opcje interakcji z serwerami FCM:

Firebase Admin SDK

Pakiet Firebase Admin SDK obsługuje uwierzytelnianie w backendzie oraz ułatwia wysyłanie wiadomości i zarządzanie subskrypcjami tematów. Za pomocą Firebase Admin SDK, możesz:

  • wysyłać wiadomości do poszczególnych instancji aplikacji;
  • wysyłać wiadomości do tematów i instrukcji warunkowych, które pasują do co najmniej 1 tematu;
  • wysyłać wiadomości do grup urządzeń;
  • subskrybować instancje aplikacji w tematach i anulować subskrypcje;
  • tworzyć ładunki wiadomości dostosowane do różnych platform docelowych.

Aby skonfigurować Firebase Admin SDK, przeczytaj artykuł Dodawanie Firebase Admin SDK do serwera. Jeśli masz już projekt w Firebase, zacznij od dodania pakietu SDK. Upewnij się też, że na stronie ustawień Cloud Messaging w projekcie jest włączony interfejs Firebase Cloud Messaging API (V1). Po zainstalowaniu Firebase Admin SDK możesz zacząć pisać logikę tworzenia żądań wysyłania.

FCM Interfejs HTTP v1 API

FCM udostępnia interfejs FCM HTTP v1 API dla deweloperów, którzy wolą korzystać z protokołu serwera.

Aby wysłać wiadomość, serwer aplikacji wysyła żądanie POST z nagłówkiem HTTP i treścią HTTP składającą się z par klucz-wartość JSON. Szczegółowe informacje o opcjach nagłówka i treści znajdziesz w artykule Wysyłanie wiadomości za pomocą FCM interfejsu HTTP v1 API.