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.
| Używanie scenariusza | 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. Jeśli jednak 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 żą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 FCM 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 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..
W przykładzie poniżej pokazano użycie pola danych najwyższego poziomu, czyli pola danych wspólnych, 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ść, 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 klucze notification i data:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}