קודי שגיאה עבור מצבי כשל של 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 או רישום דחיפה באינטרנט. בדוק את תקפות אישורי הפיתוח והייצור שלך. |