Za pomocą FCM możesz wysyłać do aplikacji klienckich 2 rodzaje wiadomości:
- Wiadomości z powiadomieniami, podobnie jak „wiadomości wyświetlane”, są obsługiwane automatycznie przez pakiet SDK FCM.
- Wiadomości z danymi, które są obsługiwane przez aplikację kliencką.
Wiadomości z powiadomieniami zawierają wstępnie zdefiniowany zestaw kluczy widocznych dla użytkownika i mogą zawierać opcjonalny ładunek danych. Wiadomości z danymi zawierają natomiast tylko zdefiniowane przez Ciebie niestandardowe pary klucz-wartość. Maksymalny rozmiar ładunku w przypadku obu typów wiadomości to 4096 bajtów, z wyjątkiem wysyłania wiadomości z konsoli Firebase, w której obowiązuje limit 1000 znaków.
Scenariusz użycia | Jak wysłać | |
---|---|---|
Treść powiadomienia | FCM Pakiet SDK wyświetla wiadomość na urządzeniach użytkowników w imieniu aplikacji klienckiej, gdy działa ona w tle. W przeciwnym razie, jeśli aplikacja działa na pierwszym planie w momencie otrzymania powiadomienia, jej kod określa zachowanie. |
|
Wiadomość z danymi | Za przetwarzanie wiadomości z danymi odpowiada aplikacja klienta. Wiadomości z danymi zawierają tylko niestandardowe pary klucz-wartość bez zarezerwowanych nazw kluczy (patrz poniżej). | W zaufanym środowisku, np.
Cloud Functions
lub na serwerze aplikacji, używaj interfejsu
Firebase Admin SDK lub interfejsu HTTP v1 API.
W żądaniu wysyłania ustaw klucz data .
|
Wiadomości z powiadomieniami możesz używać, gdy chcesz, aby pakiet SDK FCM automatycznie wyświetlał powiadomienie, gdy aplikacja działa w tle. FCM może wysłać wiadomość z powiadomieniem z opcjonalnym ładunkiem danych. W takich przypadkach FCM wyświetla ładunek powiadomienia, a aplikacja kliencka obsługuje ładunek danych.
Wiadomości z danymi możesz używać, gdy chcesz przetwarzać wiadomości za pomocą własnego kodu aplikacji klienckiej.
Wiadomości z powiadomieniami
Wiadomości z powiadomieniami możesz wysyłać za pomocą Firebasekonsoli, Firebase Admin SDK lub interfejsu FCM HTTP v1 API. Firebase Konsola udostępnia testy A/B oparte na analizach, które pomagają udoskonalać i ulepszać wiadomości z powiadomieniami.
Aby wysyłać wiadomości z powiadomieniami za pomocą interfejsu Firebase Admin SDK lub FCMHTTP v1 API, ustaw klucz notification
z wstępnie zdefiniowanym zestawem opcji klucz-wartość wiadomości z powiadomieniem. Poniższy przykład pokazuje, jak sformatować wiadomość z powiadomieniem w aplikacji do obsługi komunikatorów.
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
Gdy aplikacja działa w tle, wiadomości z powiadomieniami są dostarczane do obszaru powiadomień. W przypadku aplikacji działających na pierwszym planie wiadomości są obsługiwane przez funkcję wywołania zwrotnego.
Pełną listę wstępnie zdefiniowanych kluczy dostępnych do tworzenia wiadomości z powiadomieniami znajdziesz w dokumentacji referencyjnej obiektu powiadomienia interfejsu FCM HTTP v1 API.
Wiadomości z danymi
To Ty decydujesz, jak użyjesz ładunku FCM data
do wdrożenia wybranego schematu szyfrowania. Upewnij się, że w niestandardowych parach klucz-wartość nie używasz żadnych słów zastrzeżonych. Zarezerwowane słowa to m.in. from
, message_type
i każde słowo zaczynające się od google.
, gcm.
lub gcm.notification.
.
Poniższy przykład pokazuje użycie pola danych najwyższego poziomu lub wspólnego pola danych, które jest interpretowane przez klientów na wszystkich platformach otrzymujących wiadomość. Na każdej platformie aplikacja kliencka otrzymuje ładunek danych w funkcji wywołania zwrotnego.
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
Wiadomości z powiadomieniami z opcjonalnym ładunkiem danych
Możesz wysyłać wiadomości z powiadomieniami, które zawierają opcjonalny ładunek niestandardowych par klucz-wartość, automatycznie lub za pomocą Firebasekonsoli. W edytorze powiadomień użyj pól Dane niestandardowe w sekcji Opcje zaawansowane.
Zachowanie aplikacji podczas odbierania wiadomości zawierających zarówno powiadomienia, jak i ładunki danych, zależy od tego, czy aplikacja działa w tle czy na pierwszym planie, czyli czy jest aktywna w momencie otrzymania wiadomości.
- Gdy aplikacja działa w tle, otrzymuje ładunek powiadomienia w obszarze powiadomień i przetwarza ładunek danych tylko wtedy, gdy użytkownik kliknie powiadomienie.
- Gdy aplikacja działa na pierwszym planie, otrzymuje obiekt message z dostępnymi obydwoma ładunkami.
Oto wiadomość w formacie JSON zawierająca klucze notification
i data
:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}