ErrorCode

Kody błędów błędów FCM.

Kod błędu Opis i sposoby rozwiązania problemu
UNSPECIFIED_ERROR Nie ma więcej informacji o tym błędzie. Brak.
INVALID_ARGUMENT (kod błędu HTTP = 400) Nieprawidłowe parametry żądania. Zwracane jest rozszerzenie typu google.rpc.BadRequest, które wskazuje, które pole było nieprawidłowe. Potencjalne przyczyny obejmują nieprawidłową rejestrację, nieprawidłową nazwę pakietu, zbyt duży komunikat, nieprawidłowy klucz danych, nieprawidłowy czas TTL lub inne nieprawidłowe parametry.
Nieprawidłowa rejestracja: sprawdź format tokena rejestracji przekazywanego do serwera. Upewnij się, że jest on zgodny z tokenem rejestracji, który aplikacja kliencka otrzymuje w związku z rejestracją w FCM. Nie obcinaj tokena ani nie dodawaj dodatkowych znaków.
Nieprawidłowa nazwa pakietu: sprawdź, czy wiadomość została zaadresowana na token rejestracji, którego nazwa pakietu odpowiada wartości przekazanej w żądaniu.
Wiadomość jest za duża: sprawdź, czy łączny rozmiar danych ładunku zawartych w wiadomości nie przekracza limitów FCM: 4096 bajtów w przypadku większości wiadomości lub 2048 bajtów w przypadku wiadomości wysyłanych do tematów. Obejmuje to zarówno klucze, jak i wartości.
Nieprawidłowy klucz danych: sprawdź, czy dane ładunku nie zawierają klucza (np. from, gcm lub innej wartości poprzedzonej przez Google), który jest używany wewnętrznie przez FCM. Pamiętaj, że niektóre słowa (np. Zwiń_key) są też używane przez FCM, ale są dozwolone w ładunku. W takim przypadku wartość ładunku zostanie zastąpiona wartością FCM.
Nieprawidłowa wartość TTL: sprawdź, czy wartość używana w ttl jest liczbą całkowitą określającą czas trwania w sekundach z zakresu od 0 do 2 419 200 (4 tygodnie).
Nieprawidłowe parametry: sprawdź, czy podane parametry mają prawidłową nazwę i typ.
UNREGISTERED (kod błędu HTTP = 404) instancja aplikacji została wyrejestrowana z FCM. Zwykle oznacza to, że użyty token utracił ważność i należy użyć nowego. Ten błąd może być spowodowany brakiem tokenów rejestracji lub niezarejestrowanych tokenów.
Brak rejestracji: jeśli celem wiadomości jest wartość token, sprawdź, czy żądanie zawiera token rejestracji.
Niezarejestrowany: istniejący token rejestracji może przestać być ważny w różnych sytuacjach, między innymi:
– wyrejestrowaniu się aplikacji klienckiej z FCM;
– jeśli aplikacja kliencka zostanie automatycznie wyrejestrowana, co może mieć miejsce, gdy użytkownik ją odinstaluje; Na przykład na urządzeniu z iOS, jeśli usługa opinii o punktach APN zgłosiła token APNs jako nieprawidłowy.
– gdy token rejestracji wygaśnie (na przykład Google może odświeżyć tokeny rejestracji lub token APNs wygasł w przypadku urządzeń z iOS).
– Jeśli aplikacja kliencka jest zaktualizowana, ale nowa wersja nie jest skonfigurowana do odbierania wiadomości.
We wszystkich tych przypadkach usuń token rejestracji z serwera aplikacji i przestań go używać do wysyłania wiadomości.
SENDER_ID_MISMATCH (kod błędu HTTP = 403) Uwierzytelniony identyfikator nadawcy różni się od identyfikatora nadawcy przypisanego do tokena rejestracji. Token rejestracji jest powiązany z określoną grupą nadawców. Gdy aplikacja kliencka rejestruje się w FCM, musi określać, którzy nadawcy mogą wysyłać wiadomości. Podczas wysyłania wiadomości do aplikacji klienckiej należy użyć jednego z tych identyfikatorów nadawcy. Jeśli zmienisz nadawcę, istniejące tokeny rejestracji nie będą działać.
QUOTA_EXCEEDED (kod błędu HTTP = 429) Przekroczono limit wysyłania w celu wiadomości. Zwracane jest rozszerzenie typu google.rpc.QuotaFailure, które wskazuje, który limit został przekroczony. Ten błąd może być spowodowany przekroczeniem limitu liczby wiadomości, przekroczeniem limitu liczby wiadomości na urządzeniu lub przekroczeniem limitu liczby wiadomości w temacie.
Przekroczona częstotliwość wysyłania wiadomości: częstotliwość wysyłania wiadomości jest za duża. Musisz zmniejszyć ogólną częstotliwość wysyłania wiadomości. Do ponawiania odrzuconych wiadomości używaj wykładniczego ponowienia z minimalnym początkowym opóźnieniem wynoszącym 1 minutę.
Przekroczono limit wiadomości na urządzeniu: liczba wiadomości wysyłanych do danego urządzenia jest za wysoki. Zobacz ograniczenie liczby wiadomości na jednym urządzeniu. Zmniejsz liczbę wiadomości wysyłanych na to urządzenie i użyj wykładniczego ponowienia, aby ponowić próbę wysłania.
Przekroczono liczbę wiadomości dotyczących danego tematu: liczba wiadomości wysyłanych do subskrybentów danego tematu jest zbyt wysoki. Zmniejsz liczbę wiadomości wysyłanych w tym temacie i użyj wykładniczego ponowienia z minimalnym początkowym opóźnieniem wynoszącym 1 minutę, aby ponowić próbę wysłania.
UNAVAILABLE (kod błędu HTTP = 503) Serwer jest przeciążony. Serwer nie mógł przetworzyć żądania na czas. Ponów to samo żądanie, ale musisz:
– uwzględnić nagłówek Retry-After, jeśli znajduje się on w odpowiedzi z serwera połączenia FCM;
– Zaimplementuj wykładnicze ponawianie w mechanizmie ponawiania prób. Jeśli np. pierwsza próba powtarzała się w 1 sekundę, poczekaj co najmniej 2 sekundy przed następną, a następnie 4 sekundy itd. Jeśli wysyłasz wiele wiadomości, rozważ zastosowanie zakłóceń. Więcej informacji znajdziesz w sekcji na temat ponawiania prób. Nadawca, który powoduje problemy, może zostać zablokowany.
INTERNAL (kod błędu HTTP = 500) Wystąpił nieznany błąd wewnętrzny. Podczas próby przetworzenia żądania serwer napotkał błąd. Możesz spróbować jeszcze raz przesłać to samo żądanie, postępując zgodnie z sugestiami w artykule Obsługa ponownych prób. Jeśli błąd będzie się powtarzał, skontaktuj się z zespołem pomocy Firebase.
THIRD_PARTY_AUTH_ERROR (kod błędu HTTP = 401) – brak certyfikatu APNs lub klucza uwierzytelniania Web push. Nie udało się wysłać wiadomości kierowanej na urządzenie z iOS lub rejestracji push w internecie. Sprawdź poprawność swoich danych logowania do programowania i wersji produkcyjnej.