ErrorCode

קודי שגיאה עבור מצבי כשל של FCM.

קוד שגיאה שלבי תיאור ופתרון
UNSPECIFIED_ERROR אין מידע נוסף על שגיאה זו. אף אחד.
INVALID_ARGUMENT (קוד שגיאה HTTP = 400) פרמטרי הבקשה לא היו חוקיים. הרחבה מסוג google.rpc.BadRequest מוחזרת כדי לציין איזה שדה היה לא חוקי. סיבות אפשריות כוללות רישום לא חוקי, שם חבילה לא חוקי, הודעה גדולה מדי, מפתח נתונים לא חוקי, TTL לא חוקי או פרמטרים לא חוקיים אחרים.
רישום לא חוקי : בדוק את הפורמט של אסימון הרישום שאתה מעביר לשרת. ודא שהוא תואם את אסימון הרישום שאפליקציית הלקוח מקבלת מההרשמה ל-FCM. אין לקצץ את האסימון או להוסיף תווים נוספים.
שם חבילה לא חוקי : ודא שההודעה הופנתה לאסימון רישום ששם החבילה שלו תואם לערך שהועבר בבקשה.
הודעה גדולה מדי : בדוק שהגודל הכולל של נתוני המטען הכלולים בהודעה אינו חורג ממגבלות FCM: 4096 בתים עבור רוב ההודעות, או 2048 בייטים במקרה של הודעות לנושאים. זה כולל גם את המפתחות וגם את הערכים.
מפתח נתונים לא חוקי : בדוק שנתוני המטען אינם מכילים מפתח (כגון מ, או gcm, או כל ערך עם קידומת google) שנמצא בשימוש פנימי על ידי FCM. שים לב שמילים מסוימות (כגון collapse_key) משמשות גם את FCM אך מותרות במטען, ובמקרה זה ערך המטען יעקוף על ידי ערך FCM.
TTL לא חוקי : בדוק שהערך בשימוש ב-ttl הוא מספר שלם המייצג משך בשניות בין 0 ל-2,419,200 (4 שבועות).
פרמטרים לא חוקיים : בדוק שלפרמטרים שסופקו יש את השם והסוג הנכונים.
UNREGISTERED (קוד שגיאה HTTP = 404) מופע האפליקציה לא נרשם מ-FCM. זה בדרך כלל אומר שהאסימון שבו נעשה שימוש כבר אינו תקף ויש להשתמש באחד חדש. שגיאה זו יכולה להיגרם עקב חסרים אסימוני רישום, או אסימונים לא רשומים.
רישום חסר : אם יעד ההודעה הוא ערך token , בדוק שהבקשה מכילה אסימון רישום.
לא רשום : אסימון רישום קיים עלול להפסיק להיות תקף במספר תרחישים, כולל:
- אם אפליקציית הלקוח מבטלת את הרישום ב-FCM.
- אם אפליקציית הלקוח בוטלה באופן אוטומטי, מה שיכול לקרות אם המשתמש מסיר את ההתקנה של האפליקציה. לדוגמה, ב-iOS, אם שירות המשוב של ה-APN דיווח על אסימון ה-APN כלא חוקי.
- אם תוקף אסימון הרישום פג (לדוגמה, Google עשויה להחליט לרענן אסימוני רישום, או שתוקף אסימון ה-APNs פג עבור מכשירי iOS).
- אם אפליקציית הלקוח מעודכנת אך הגרסה החדשה אינה מוגדרת לקבלת הודעות.
בכל המקרים הללו, הסר אסימון רישום זה משרת האפליקציה והפסק להשתמש בו לשליחת הודעות.
SENDER_ID_MISMATCH (קוד שגיאה HTTP = 403) מזהה השולח המאומת שונה מזהה השולח עבור אסימון הרישום. אסימון רישום קשור לקבוצה מסוימת של שולחים. כאשר אפליקציית לקוח נרשמה ל-FCM, עליה לציין אילו שולחים רשאים לשלוח הודעות. עליך להשתמש באחד מאותם מזהי שולח בעת שליחת הודעות לאפליקציית הלקוח. אם תעבור לשולח אחר, אסימוני הרישום הקיימים לא יפעלו.
QUOTA_EXCEEDED (קוד שגיאה HTTP = 429) חרגת ממגבלת השליחה עבור יעד ההודעה. הרחבה מסוג google.rpc.QuotaFailure מוחזרת כדי לציין איזו מכסה חרגה. שגיאה זו יכולה להיגרם עקב חריגה ממכסת תעריף הודעות, חריגה ממכסת תעריף הודעות במכשיר או חריגה ממכסת תעריף הודעות בנושא.
חריגה מקצב ההודעות : קצב שליחת ההודעות גבוה מדי. עליך להפחית את הקצב הכולל שבו אתה שולח הודעות. השתמש ב-backoff אקספוננציאלי עם עיכוב ראשוני מינימלי של דקה אחת כדי לנסות שוב הודעות שנדחו.
חריגה משיעור ההודעות במכשיר : שיעור ההודעות למכשיר מסוים גבוה מדי. ראה מגבלת שיעור הודעות למכשיר בודד . צמצם את מספר ההודעות שנשלחות למכשיר זה והשתמש ב-backoff אקספוננציאלי כדי לנסות לשלוח שוב.
חריגה משיעור הודעות הנושא : שיעור ההודעות למנויים לנושא מסוים גבוה מדי. צמצם את מספר ההודעות שנשלחו עבור נושא זה והשתמש ב-backoff אקספוננציאלי עם עיכוב ראשוני מינימלי של דקה אחת כדי לנסות לשלוח שוב.
UNAVAILABLE (קוד שגיאה HTTP = 503) השרת עמוס יתר על המידה. השרת לא הצליח לעבד את הבקשה בזמן. נסה שוב את אותה בקשה, אך עליך:
- כבד את הכותרת של ניסיון חוזר לאחר אם היא כלולה בתגובה משרת החיבורים של FCM.
- יישם גיבוי אקספוננציאלי במנגנון הניסיון החוזר שלך. (לדוגמה, אם חיכית שנייה אחת לפני הניסיון החוזר הראשון, המתן לפחות שתי שניות לפני הבא, ואז 4 שניות וכן הלאה). אם אתה שולח מספר הודעות, שקול להחיל ריצוד. למידע נוסף, ראה טיפול בניסיונות חוזרים . שולחים שגורמים לבעיות מסתכנים בדחיית הרשימה.
INTERNAL (קוד שגיאה HTTP = 500) אירעה שגיאה פנימית לא ידועה. השרת נתקל בשגיאה בעת ניסיון לעבד את הבקשה. תוכל לנסות שוב את אותה בקשה בעקבות הצעות בטיפול בניסיונות חוזרים . אם השגיאה נמשכת, פנה לתמיכה של Firebase.
THIRD_PARTY_AUTH_ERROR (קוד שגיאה של HTTP = 401) אישור APN או מפתח אישור דחיפה באינטרנט לא היה חוקי או חסר. לא ניתן לשלוח הודעה הממוקדת למכשיר iOS או רישום דחיפה באינטרנט. בדוק את תקפות אישורי הפיתוח והייצור שלך.