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. |