Za pomocą FCM możesz wysyłać do aplikacji klienckich 2 typy wiadomości:
- Wiadomości z powiadomieniami, podobne do "wiadomości wyświetlanych", są automatycznie obsługiwane przez pakiet FCM SDK.
- 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 użytkownika 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, która wymusza limit 1000 znaków.
| Scenariusz użycia | Jak wysłać | |
|---|---|---|
| Wiadomość z powiadomieniem | FCM SDK wyświetla wiadomość na urządzeniach użytkowników końcowych w imieniu aplikacji klienckiej, gdy działa ona w tle. Jeśli aplikacja działa na pierwszym planie, gdy nadejdzie powiadomienie, o jej zachowaniu decyduje kod aplikacji. |
|
| Wiadomość z danymi | Za przetwarzanie wiadomości z danymi odpowiada aplikacja kliencka. Wiadomości z danymi zawierają tylko niestandardowe pary klucz-wartość bez zarezerwowanych nazw kluczy (patrz poniżej). | W zaufanym środowisku, takim jak
Cloud Functions
lub serwer aplikacji, użyj
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 FCM SDK 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ą konsoli Firebase, Firebase Admin SDK lub interfejsu FCM HTTP v1 API. Konsola Firebase udostępnia testy A/B oparte na danych analitycznych, które pomagają udoskonalać wiadomości z powiadomieniami.
Aby wysyłać wiadomości z powiadomieniami za pomocą Firebase Admin SDK lub FCM
interfejsu HTTP 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 wiadomości błyskawicznych.
{
"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 paska 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, których można używać 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 chcesz używać ł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. Słowa zastrzeżone to from, message_type, lub
wszystkie słowa zaczynające się od google., gcm. lub gcm.notification..
Poniższy przykład pokazuje użycie pola danych najwyższego poziomu lub wspólnego, które jest interpretowane przez klientów na wszystkich platformach, na których wiadomość jest odbierana. 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
Wiadomości z powiadomieniami, które zawierają opcjonalny ładunek niestandardowych par klucz-wartość, możesz wysyłać programowo lub za pomocą konsoli Firebase. W kreatorze powiadomień, użyj pól Dane niestandardowe w sekcji Opcje zaawansowane.
Zachowanie aplikacji podczas odbierania wiadomości, które zawierają zarówno ładunek powiadomienia, jak i ładunek 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 na pasku powiadomień i obsługuje ładunek danych tylko wtedy, gdy użytkownik kliknie powiadomienie.
- Gdy aplikacja działa na pierwszym planie, otrzymuje obiekt wiadomości z dostępnymi oboma ładunkami.
Oto wiadomość w formacie JSON zawierająca zarówno klucz
notification jak i klucz data:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}