Na tej stronie znajdziesz pomoc w rozwiązywaniu problemów i odpowiedzi na najczęstsze pytania dotyczące Cloud Messaging.
Czym różni się narzędzie do tworzenia powiadomień od FCM?
Firebase Cloud Messaging zapewnia pełny zestaw funkcji przesyłania wiadomości za pomocą pakietów SDK klienta i protokołu serwera HTTP. W przypadku wdrożeń o bardziej złożonych wymaganiach dotyczących przesyłania wiadomości FCM jest właściwym wyborem.
Kreator powiadomień to lekkie, bezserwerowe rozwiązanie do przesyłania wiadomości oparte na Firebase Cloud Messaging. Dzięki łatwej w użyciu konsoli graficznej i mniejszym wymaganiom dotyczącym kodowania Kreator powiadomień umożliwia użytkownikom wysyłanie wiadomości, które pomagają ponownie zaangażować i utrzymać użytkowników, wspierają rozwój dzięki kampaniom promującym aplikacje i kampanie marketingowe.
| Uprawnienia |
|
Kreator powiadomień |
Cloud Messaging |
| Target |
Konkretne urządzenie |
|
|
|
Klienci subskrybujący tematy (np. pogoda) |
|
|
|
Klienci w zdefiniowanym segmencie użytkowników (aplikacja, wersja, język) |
|
|
|
Klienci w określonych grupach odbiorców usługi Analytics |
|
|
|
Klienci w grupach urządzeń |
|
|
|
Ruch wychodzący od klienta do serwera |
|
|
| Typ wiadomości |
Powiadomienia do 2 KB |
|
|
|
Wiadomości z danymi o rozmiarze do 4 KB |
|
|
| Dostawa |
Natychmiast |
|
|
|
Lokalny czas na urządzeniu klienta w przyszłości |
|
|
| Statystyki |
Wbudowana funkcja gromadzenia danych analitycznych dotyczących powiadomień oraz analiza ścieżki |
|
|
Czy muszę korzystać z innych usług Firebase, aby używać FCM?
Możesz używać Firebase Cloud Messaging jako samodzielnego komponentu, bez korzystania z innych usług Firebase.
Dlaczego urządzenia docelowe najwyraźniej nie otrzymują wiadomości?
Jeśli urządzenia nie otrzymują wiadomości, sprawdź najpierw te 2 potencjalne przyczyny:
Obsługa wiadomości na pierwszym planie w przypadku powiadomień. Aplikacje klienckie muszą dodawać logikę obsługi wiadomości, aby obsługiwać wiadomości z powiadomieniem, gdy aplikacja działa na urządzeniu na pierwszym planie. Szczegółowe informacje znajdziesz w przypadku iOS i Androida.
Ograniczenia zapory sieciowej. Jeśli Twoja organizacja ma zaporę sieciową, która ogranicza ruch do lub z internetu, musisz ją skonfigurować tak, aby zezwalała na połączenie z FCM. Dzięki temu aplikacje klienckie Firebase Cloud Messaging będą mogły odbierać wiadomości. Porty, które należy otworzyć:
FCM zwykle używa portu 5228, ale czasami korzysta też z portów 5229 i 5230.
FCM nie podaje konkretnych adresów IP, więc zezwól zaporze sieciowej na akceptowanie połączeń wychodzących w przypadku wszystkich adresów IP zawartych w blokach adresów IP wymienionych na liście ASN 15169 Google.
Dlaczego metoda onMessageReceived nie jest wywoływana w mojej aplikacji na Androida?
Gdy aplikacja działa w tle, wiadomości powiadomień są wyświetlane w obszarze powiadomień, a funkcja onMessageReceived nie jest wywoływana. W przypadku wiadomości powiadomień z ładunkiem danych wiadomość powiadomienia jest wyświetlana w obszarze powiadomień, a dane dołączone do wiadomości powiadomienia można pobrać z intencji uruchomionej, gdy użytkownik kliknie powiadomienie.
Więcej informacji znajdziesz w artykule Odbieranie i obsługa wiadomości.
Dlaczego podczas wysyłania wiadomości do aktywnej instancji aplikacji przywróconej z kopii zapasowej pojawia się błąd 404?
FID (identyfikator instalacji Firebase) to identyfikator instancji aplikacji. Domyślnie dane instalacji Firebase są zapisywane w kopii zapasowej i przywracane. W przypadku przywracania przywrócona instancja aplikacji i jej pierwotna instancja mają ten sam identyfikator FID. FCM przechowuje tylko 1 token na identyfikator FID, więc jeśli używane są zarówno pierwotna, jak i przywrócona instancja aplikacji, to gdy jedna z nich zarejestruje się w FCM, token drugiej instancji zostanie usunięty, co spowoduje błędy 404.
Zalecamy deweloperom wykonanie w aplikacji tych czynności:
- Wyklucz dane instalacji Firebase z kopii zapasowej. Dane instalacji Firebase są przechowywane w pliku
PersistedInstallation....json. Nazwa pliku jest stała dla aplikacji. Na przykład: <exclude domain="file" path="PersistedInstallation.W0R...GQ.json"
/>
Firma Apple ogłosiła, że wycofuje starszy protokół binarny APNs. Czy muszę coś zrobić?
Nie. W 2017 roku usługa Firebase Cloud Messaging przeszła na protokół APNs oparty na HTTP/2.
Jeśli używasz FCM do wysyłania powiadomień na urządzenia z iOS, nie musisz nic robić.
Limity FCM
Jak w ciągu 2 minut powiadomić dużą bazę klientów?
Ten przypadek użycia nie jest obsługiwany. Ruch musisz rozłożyć na 5 minut.
Moja aplikacja powiadamia użytkowników o wydarzeniach, a te wiadomości muszą być dostarczane natychmiast, aby wspierać mój model biznesowy. Czy mogę zwiększyć limit?
Z tego powodu nie możemy zwiększyć limitu. Musisz rozłożyć ruch na 5 minut, aby uniknąć skoków ruchu.
Moje wiadomości dotyczą zaplanowanych wydarzeń. Jak mogę wysyłać cały ruch na początku godziny?
Zalecamy rozpoczęcie wysyłania powiadomień co najmniej 5 minut przed wydarzeniem. Możesz też wysyłać wiadomości z danymi i zaimplementować odpowiednik modułu obsługi onMessageReceived na swojej platformie, aby planować powiadomienia lokalne z wyprzedzeniem.
Błędy 429 są trudne do obsłużenia
dla mnie i mojej firmy. Czy mogę uzyskać zwolnienie lub większy limit, aby uniknąć błędów 429?
Rozumiemy, że limity mogą być uciążliwe, ale są one niezbędne do zapewnienia niezawodności usługi i nie możemy robić wyjątków. Użyj ponownych prób, aby prawidłowo obsługiwać błędy 429.
Ile czasu zajmie rozpatrzenie mojej prośby o zwiększenie limitu?
Twoja prośba o zwiększenie limitu zależy od tego, jak korzystasz z FCM. W każdym przypadku możesz oczekiwać odpowiedzi w ciągu kilku dni roboczych. W niektórych przypadkach może dojść do wymiany informacji na temat korzystania z usługi FCM i różnych okoliczności, co może wydłużyć proces. Jeśli spełniasz wszystkie wymagania, większość próśb rozpatrzymy w ciągu 2 tygodni.
Czy mogę uzyskać większy limit na potrzeby tymczasowego wydarzenia?
Możesz poprosić o dodatkowy limit, aby obsłużyć wydarzenie trwające do 1 miesiąca.
Prześlij prośbę co najmniej miesiąc przed wydarzeniem i podaj dokładne informacje o tym, kiedy się ono zaczyna i kończy, a firma FCM dołoży wszelkich starań, aby spełnić Twoją prośbę. Jeśli zwiększymy limity, po dacie zakończenia wydarzenia zostaną one przywrócone do poprzedniego stanu.
Czy mój obecny limit może ulec zmianie?
Google nie będzie tego robić bez ważnego powodu, ale w razie potrzeby limity mogą zostać zmienione, aby chronić integralność systemu. Jeśli to możliwe, Google powiadomi Cię o takich zmianach z wyprzedzeniem. Dbaj o aktualność kontaktów w umowie MSA dotyczącej usług w chmurze, aby zwiększyć szanse na otrzymywanie ogłoszeń dotyczących usług.
FCM wycofane starsze interfejsy API
Interfejsy API po stronie serwera zostaną wycofane we wrześniu 2026 r.
Które interfejsy API i funkcje zostały wycofane i zostaną wyłączone? Co mam zrobić, jeśli używam tych interfejsów API?
Wszystkie interfejsy API serwera InstanceId i funkcja grupy urządzeń zostały wycofane i zostaną wyłączone 29 września 2027 r. Tabela poniżej zawiera więcej informacji o wycofanych interfejsach API i funkcjach oraz o wymaganych działaniach.
| Nazwa interfejsu API
|
Punkt końcowy API
|
Przeznaczenie
|
Wpływ na klientów
|
Wymagane działanie
|
| Interfejs InstanceId info API
|
https://iid.googleapis.com/iid/info
|
Uzyskiwanie informacji związanych z identyfikatorem InstanceId lub tokenem FCM
|
Po 29 września 2027 r. żądania wysyłane do tego interfejsu API będą się kończyć niepowodzeniem.
|
Klienci, którzy używają interfejsu API do weryfikacji tokenów, powinni używać FCM interfejsu API wysyłania w wersji 1 i ustawić wartość validate_only na „true”.
Klienci, którzy używają interfejsu API do uzyskiwania informacji o subskrypcji tematów, powinni przejść na nowy interfejs API do subskrypcji tematów.
|
| Interfejs API subskrypcji tematów InstanceId
|
https://iid.googleapis.com/iid/v1/…/rel/topics
https://iid.googleapis.com/iid/v1:batchAdd
https://iid.googleapis.com/iid/v1:batchRemove
|
Subskrybowanie tokenów do tematu za pomocą starszego interfejsu API subskrypcji tematów.
|
Po 29 września 2027 r. żądania wysyłane do tych interfejsów API zaczną kończyć się niepowodzeniem.
|
Przejdź na nowy serwer subskrypcji tematów FCM
API do subskrybowania i anulowania subskrypcji tematów.
|
| Interfejs API do importu zbiorczego InstanceId
|
https://iid.googleapis.com/iid/v1:batchImport
|
Tworzenie tokenów FCM dla iOS w partiach po stronie serwera.
|
Po 29 września 2027 r. żądania wysyłane do tego interfejsu API będą się kończyć niepowodzeniem.
Tworzenie rejestracji FCM na podstawie tokenów APNs po stronie serwera nie będzie obsługiwane.
|
Możesz użyć usługi APNs firmy Apple do wysyłania powiadomień za pomocą tokenów APNs.
Aby uzyskać dodatkowe korzyści, które zapewnia FCM, zintegruj aplikację z pakietem SDK FCM na iOS, który utworzy rejestracje FCM na kliencie.
|
| Device group management API
|
https://fcm.googleapis.com/fcm/notification
https://fcm.googleapis.com/gcm/notification
https://fcm.googleapis.com/iid/notification
https://fcm.googleapis.com/notification
|
dodawanie, usuwanie i pobieranie członków grupy urządzeń;
|
Po 29 września 2027 r. żądania wysyłane do tego interfejsu API będą kończyć się niepowodzeniem.
|
Zapoznaj się ze wskazówkami dotyczącymi migracji z tej funkcji.
Wiadomości można nadal wysyłać do poszczególnych rejestracji FCM zamiast do tokenów grupy.
|
| Wysyłanie do grupy urządzeń
|
https://fcm.googleapis.com/v1/projects/…/messages:send
|
Wysyłanie wiadomości do grup urządzeń za pomocą klucza notification_key grupy.
|
Ten interfejs API będzie nadal działać, ale po 29 września 2027 r. nie będzie obsługiwać tokenów grup urządzeń.
|
Czy wycofanie funkcji wpłynie na mnie, jeśli do zarządzania subskrypcjami tematów używam pakietu Firebase Admin SDK? Co mam zrobić?
Jeśli do zarządzania subskrypcjami tematów używasz starszych wersji pakietu Firebase Admin SDK, wycofanie będzie miało na Ciebie wpływ.
Musisz zaktualizować pakiet Firebase Admin SDK do tych wersji:
| Platforma
|
Wersja pakietu Admin SDK, której dotyczy problem
|
Wersja pakietu Admin SDK, do której należy uaktualnić pakiet
|
| Node.js
|
<=14.4.0
|
>=14.5.0
|
| Python
|
<=7.6.0
|
>=7.7.0
|
| Java
|
<=9.10.0
|
>=9.11.0
|
| Go
|
<=4.21.0
|
>=4.22.0
|
| .NET
|
<=3.6.0
|
>=3.7.0
|
Czy przed 29 września 2027 r. nastąpi pogorszenie jakości usług?
Nie. Masz 12 miesięcy na przejście z wycofanych interfejsów API na alternatywne rozwiązania bez obniżania jakości usług. Zdecydowanie zalecamy jak najszybsze zaplanowanie migracji, aby uniknąć problemów związanych z wycofaniem usługi.
Po 29 września 2027 r. podczas wywoływania wycofanych interfejsów API będą występować błędy.
Czy nowi użytkownicy mogą zacząć korzystać z wycofanych interfejsów API lub funkcji przed ich wyłączeniem?
Nowi użytkownicy mogą zacząć korzystać z wycofanych interfejsów API i funkcji przed 1 stycznia 2027 r.
Po 1 stycznia 2027 r. nowi użytkownicy nie będą mogli korzystać z wycofanych interfejsów API.
Użytkownicy, którzy korzystają z wycofanych interfejsów API, mogą nadal z nich korzystać do 29 września 2027 r.