Za pomocą FCM możesz wysyłać do aplikacji klienckich 2 typy wiadomości:
- Wiadomości z powiadomieniami, podobnie jak „wiadomości wyświetlane”, są obsługiwane automatycznie przez pakiet SDKFCM.
- 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.
| Używanie scenariusza | Jak wysłać | |
|---|---|---|
| Treść powiadomienia | FCM Pakiet SDK wyświetla wiadomość na urządzeniach użytkowników w imieniu aplikacji klienta, gdy działa ona w tle. W przeciwnym razie, jeśli aplikacja działa na pierwszym planie w momencie otrzymania powiadomienia, zachowanie określa kod aplikacji. |
|
| 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 prośbie o wysłanie 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 wykorzystywać, 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 opartą na analizach funkcję testów A/B, która pomaga udoskonalać i ulepszać wiadomości powiadomień.
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 chcesz użyć ładunku FCM data, aby wdrożyć wybrany schemat 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 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 pola danych, które jest interpretowane przez klientów na wszystkich platformach odbierają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ść, programowo lub za pomocą Firebase konsoli. W edytorze powiadomień użyj pól Dane niestandardowe w sekcji Opcje zaawansowane.
Zachowanie aplikacji po otrzymaniu 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 klucz notification i klucz data:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}