ErrorCode

کدهای خطا برای شرایط خرابی FCM.

کد خطا مراحل شرح و تفکیک
UNSPECIFIED_ERROR اطلاعات بیشتری در مورد این خطا در دسترس نیست. هیچ یک.
INVALID_ARGUMENT (کد خطای HTTP = 400) پارامترهای درخواست نامعتبر بودند. پسوندی از نوع google.rpc.BadRequest برگردانده می شود تا مشخص شود کدام فیلد نامعتبر است. دلایل بالقوه شامل ثبت نامعتبر، نام بسته نامعتبر، پیام خیلی بزرگ، کلید داده نامعتبر، TTL نامعتبر، یا سایر پارامترهای نامعتبر است.
ثبت نام نامعتبر : فرمت رمز ثبت نامی که به سرور ارسال می کنید را بررسی کنید. مطمئن شوید که با نشانه ثبتی که برنامه مشتری از ثبت نام در FCM دریافت می کند مطابقت دارد. نشانه را کوتاه نکنید یا کاراکترهای اضافی اضافه نکنید.
نام بسته نامعتبر : مطمئن شوید که پیام به نشانه ثبتی که نام بسته آن با مقدار ارسال شده در درخواست مطابقت دارد، خطاب شده است.
پیام خیلی بزرگ : بررسی کنید که حجم کل داده‌های محموله موجود در یک پیام از محدودیت‌های FCM تجاوز نکند: 4096 بایت برای بیشتر پیام‌ها، یا 2048 بایت در مورد پیام‌ها به موضوعات. این شامل کلیدها و مقادیر می شود.
کلید داده نامعتبر : بررسی کنید که داده‌های محموله حاوی کلید (مانند از، یا gcm، یا هر مقداری که پیشوند Google است) نباشد که به صورت داخلی توسط FCM استفاده می‌شود. توجه داشته باشید که برخی از کلمات (مانند collapse_key) توسط FCM نیز استفاده می شوند اما در payload مجاز هستند، در این صورت مقدار payload با مقدار FCM لغو می شود.
TTL نامعتبر : بررسی کنید که مقدار استفاده شده در ttl یک عدد صحیح باشد که مدت زمان بر حسب ثانیه را بین 0 تا 2,419,200 (4 هفته) نشان می دهد.
پارامترهای نامعتبر : بررسی کنید که پارامترهای ارائه شده نام و نوع مناسبی داشته باشند.
UNREGISTERED (کد خطای HTTP = 404) نمونه برنامه از FCM ثبت نشده است. این معمولاً به این معنی است که توکن مورد استفاده دیگر معتبر نیست و باید از یک توکن جدید استفاده شود. این خطا می تواند ناشی از گم شدن توکن های ثبت نام یا توکن های ثبت نشده باشد.
عدم ثبت نام : اگر هدف پیام یک مقدار token است، بررسی کنید که درخواست حاوی نشانه ثبت باشد.
ثبت نشده : یک رمز ثبت موجود ممکن است در تعدادی از سناریوها از بین برود، از جمله:
- اگر برنامه مشتری با FCM لغو ثبت نام کند.
- اگر برنامه مشتری به طور خودکار ثبت نشده باشد، در صورتی که کاربر برنامه را حذف نصب کند، ممکن است اتفاق بیفتد. به عنوان مثال، در iOS، اگر سرویس بازخورد APNs توکن APN را نامعتبر گزارش کند.
- اگر رمز ثبت نام منقضی شود (برای مثال، ممکن است Google تصمیم بگیرد که نشانه های ثبت نام را به روز کند، یا نشانه APNs برای دستگاه های iOS منقضی شده است).
- اگر برنامه سرویس گیرنده به روز شده است اما نسخه جدید برای دریافت پیام پیکربندی نشده است.
برای همه این موارد، این رمز ثبت نام را از سرور برنامه حذف کنید و استفاده از آن برای ارسال پیام را متوقف کنید.
SENDER_ID_MISMATCH (کد خطای HTTP = 403) شناسه فرستنده احراز هویت شده با شناسه فرستنده رمز ثبت نام متفاوت است. یک نشانه ثبت نام به گروه خاصی از فرستندگان گره خورده است. هنگامی که یک برنامه مشتری برای FCM ثبت نام می کند، باید مشخص کند که کدام فرستنده مجاز به ارسال پیام است. هنگام ارسال پیام به برنامه مشتری باید از یکی از آن شناسه های فرستنده استفاده کنید. اگر به فرستنده دیگری بروید، نشانه‌های ثبت‌نام موجود کار نمی‌کنند.
QUOTA_EXCEEDED (کد خطای HTTP = 429) از محدودیت ارسال برای هدف پیام فراتر رفت. پسوندی از نوع google.rpc.QuotaFailure برگردانده می شود تا مشخص شود از کدام سهمیه فراتر رفته است. این خطا می تواند ناشی از فراتر رفتن از سهمیه نرخ پیام، فراتر از سهمیه نرخ پیام دستگاه، یا فراتر از سهمیه نرخ پیام موضوعی باشد.
نرخ پیام بیش از حد : نرخ ارسال پیام ها بسیار بالا است. شما باید نرخ کلی ارسال پیام را کاهش دهید. از عقب نشینی نمایی با حداقل تاخیر اولیه 1 دقیقه برای امتحان مجدد پیام های رد شده استفاده کنید.
نرخ پیام دستگاه بیش از حد است : نرخ پیام‌ها به یک دستگاه خاص بسیار زیاد است. محدودیت نرخ پیام برای یک دستگاه را ببینید . تعداد پیام‌های ارسال شده به این دستگاه را کاهش دهید و برای ارسال مجدد از عقب‌نشینی نمایی استفاده کنید.
نرخ پیام موضوع بیش از حد است : نرخ پیام به مشترکین یک موضوع خاص بسیار زیاد است. تعداد پیام‌های ارسال‌شده برای این موضوع را کاهش دهید و برای ارسال مجدد از عقب‌نشینی نمایی با حداقل تأخیر اولیه ۱ دقیقه استفاده کنید.
UNAVAILABLE (کد خطای HTTP = 503) سرور بیش از حد بارگیری شده است. سرور نتوانست به موقع درخواست را پردازش کند. همان درخواست را دوباره امتحان کنید، اما باید:
- اگر هدر Retry-After در پاسخ سرور اتصال FCM گنجانده شده است، به آن احترام بگذارید.
- در مکانیسم تلاش مجدد خود، عقب نشینی نمایی را پیاده سازی کنید. (مثلاً اگر یک ثانیه قبل از اولین تلاش مجدد صبر کرده اید، حداقل دو ثانیه قبل از امتحان بعدی صبر کنید، سپس 4 ثانیه و غیره). اگر چندین پیام ارسال می‌کنید، از جیترینگ استفاده کنید. برای کسب اطلاعات بیشتر، به مدیریت تلاش های مجدد مراجعه کنید . فرستنده هایی که مشکل ایجاد می کنند در معرض خطر رد شدن هستند.
INTERNAL (کد خطای HTTP = 500) یک خطای داخلی ناشناخته رخ داد. سرور هنگام تلاش برای پردازش درخواست با خطایی مواجه شد. می‌توانید همان درخواست را پس از پیشنهادات موجود در «کنترل تلاش‌های مجدد» دوباره امتحان کنید . اگر خطا ادامه داشت، لطفاً با پشتیبانی Firebase تماس بگیرید.
THIRD_PARTY_AUTH_ERROR (کد خطای HTTP = 401) گواهینامه APN یا کلید تأیید وب فشار نامعتبر یا گم شده بود. پیامی که برای یک دستگاه iOS یا ثبت وب پوش هدف گذاری شده است ارسال نشد. اعتبار اعتبارنامه توسعه و تولید خود را بررسی کنید.