ErrorCode

รหัสข้อผิดพลาดสำหรับเงื่อนไขความล้มเหลวของ FCM

รหัสข้อผิดพลาด คำอธิบายและขั้นตอนการแก้ปัญหา
UNSPECIFIED_ERROR ไม่มีข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดนี้ ไม่มี
INVALID_ARGUMENT (รหัสข้อผิดพลาด HTTP = 400) พารามิเตอร์คำขอไม่ถูกต้อง แสดงส่วนขยายประเภท google.rpc.BadRequest เพื่อระบุว่าช่องใดไม่ถูกต้อง สาเหตุที่เป็นไปได้รวมถึงการลงทะเบียนไม่ถูกต้อง, ชื่อแพ็กเกจไม่ถูกต้อง, ข้อความมีขนาดใหญ่เกินไป, คีย์ข้อมูลไม่ถูกต้อง, TTL ไม่ถูกต้อง หรือพารามิเตอร์อื่นๆ ที่ไม่ถูกต้อง
การลงทะเบียนไม่ถูกต้อง: ตรวจสอบรูปแบบของโทเค็นการลงทะเบียนที่คุณส่งไปยังเซิร์ฟเวอร์ ตรวจสอบว่าตรงกับโทเค็นการลงทะเบียนที่แอปไคลเอ็นต์ได้รับจากการลงทะเบียนด้วย FCM อย่าตัดโทเค็นหรือเพิ่มอักขระอีก
ชื่อแพ็กเกจไม่ถูกต้อง: ตรวจสอบว่าข้อความส่งไปยังโทเค็นการลงทะเบียนซึ่งมีชื่อแพ็กเกจตรงกับค่าที่ส่งในคำขอ
ข้อความมีขนาดใหญ่เกินไป: ตรวจสอบว่าขนาดรวมของข้อมูลเพย์โหลดที่รวมอยู่ในข้อความไม่เกินขีดจำกัดของ FCM ซึ่งได้แก่ 4096 ไบต์สำหรับข้อความส่วนใหญ่ หรือ 2048 ไบต์ในกรณีที่ส่งข้อความไปยังหัวข้อ ซึ่งรวมทั้งคีย์และค่า
คีย์ข้อมูลไม่ถูกต้อง: ตรวจสอบว่าข้อมูลเพย์โหลดไม่มีคีย์ (เช่น from, หรือ gcm หรือค่าใดๆ ที่นำหน้าโดย Google) ที่ใช้ภายในโดย FCM โปรดทราบว่า FCM จะใช้คำบางคำ (เช่น collapse_key) ด้วย แต่จะใช้ในเพย์โหลดได้ ซึ่งในกรณีนี้ ค่า FCM จะลบล้างค่าเพย์โหลด
TTL ไม่ถูกต้อง: ตรวจสอบว่าค่าที่ใช้ใน ttl เป็นจำนวนเต็มที่แสดงระยะเวลาเป็นวินาทีตั้งแต่ 0 ถึง 2,419,200 (4 สัปดาห์)
พารามิเตอร์ไม่ถูกต้อง: ตรวจสอบว่าพารามิเตอร์ที่ระบุมีชื่อและประเภทที่ถูกต้อง
UNREGISTERED (รหัสข้อผิดพลาด HTTP = 404) มีการลงทะเบียนอินสแตนซ์ของแอปจาก FCM แล้ว ซึ่งโดยปกติจะหมายความว่าโทเค็นที่ใช้ใช้ไม่ได้แล้วและต้องใช้โทเค็นใหม่ ข้อผิดพลาดนี้อาจเกิดจากไม่มีโทเค็นการลงทะเบียนหรือโทเค็นที่ไม่ได้ลงทะเบียน
ไม่มีการลงทะเบียน: หากเป้าหมายของข้อความเป็นค่า token ให้ตรวจสอบว่าคำขอมีโทเค็นการลงทะเบียน
ยังไม่ได้ลงทะเบียน: โทเค็นการลงทะเบียนที่มีอยู่อาจใช้งานไม่ได้ในบางสถานการณ์ เช่น
- หากแอปไคลเอ็นต์ยกเลิกการลงทะเบียนกับ FCM
- หากแอปไคลเอ็นต์ถูกยกเลิกการลงทะเบียนโดยอัตโนมัติ ซึ่งอาจเกิดขึ้นได้หากผู้ใช้ถอนการติดตั้งแอปไคลเอ็นต์ ตัวอย่างเช่น ใน iOS หากบริการความคิดเห็น APNs รายงานว่าโทเค็น APN ไม่ถูกต้อง
- หากโทเค็นการลงทะเบียนหมดอายุ (เช่น Google อาจตัดสินใจรีเฟรชโทเค็นการลงทะเบียน หรือโทเค็น APN สําหรับอุปกรณ์ iOS หมดอายุแล้ว)
- หากมีการอัปเดตแอปไคลเอ็นต์ แต่ไม่ได้กำหนดค่าเวอร์ชันใหม่ให้รับข้อความ
สำหรับกรณีเหล่านี้ทั้งหมด ให้นำโทเค็นการลงทะเบียนนี้ออกจากเซิร์ฟเวอร์ของแอปและหยุดใช้โทเค็นเพื่อส่งข้อความ
SENDER_ID_MISMATCH (รหัสข้อผิดพลาด HTTP = 403) รหัสผู้ส่งที่ผ่านการตรวจสอบสิทธิ์แล้วแตกต่างจากรหัสผู้ส่งสำหรับโทเค็นการลงทะเบียน โทเค็นการลงทะเบียนจะเชื่อมโยงกับกลุ่มผู้ส่งบางกลุ่ม เมื่อแอปไคลเอ็นต์ลงทะเบียนสำหรับ FCM แอปต้องระบุผู้ส่งที่ได้รับอนุญาตให้ส่งข้อความ คุณควรใช้รหัสผู้ส่งรหัสใดรหัสหนึ่งเมื่อส่งข้อความไปยังแอปไคลเอ็นต์ หากเปลี่ยนเป็นผู้ส่งรายอื่น โทเค็นการลงทะเบียนที่มีอยู่จะไม่ทำงาน
QUOTA_EXCEEDED (รหัสข้อผิดพลาด HTTP = 429) เกินขีดจำกัดการส่งสำหรับข้อความเป้าหมาย แสดงส่วนขยายประเภท google.rpc.QuotaFailure เพื่อระบุว่าเกินโควต้าใด ข้อผิดพลาดนี้อาจเกิดจากอัตราข้อความเกินโควต้า เกินโควต้าอัตราข้อความในอุปกรณ์ หรือเกินโควต้าอัตราข้อความของหัวข้อ
อัตราข้อความเกินขีดจำกัด: อัตราการส่งข้อความสูงเกินไป คุณต้องลดอัตราโดยรวมที่ส่งข้อความ ใช้ Exponential Backoff โดยหน่วงเวลาเริ่มต้นอย่างน้อย 1 นาทีเพื่อลองส่งข้อความที่ถูกปฏิเสธอีกครั้ง
เกินอัตราการส่งข้อความในอุปกรณ์: อัตราการรับส่งข้อความในอุปกรณ์ใดอุปกรณ์หนึ่งสูงเกินไป โปรดดูการจำกัดอัตราการส่งข้อความไว้ในอุปกรณ์เครื่องเดียว ลดจำนวนข้อความที่ส่งมายังอุปกรณ์นี้และใช้ Exponential Backoff เพื่อลองส่งอีกครั้ง
อัตราข้อความของหัวข้อเกินขีดจำกัด: อัตราการรับส่งข้อความของหัวข้อใดหัวข้อหนึ่งสูงเกินไป ลดจำนวนข้อความที่ส่งสำหรับหัวข้อนี้และใช้ Exponential Backoff โดยหน่วงเวลาเริ่มต้นอย่างน้อย 1 นาทีเพื่อเริ่มส่งอีกครั้ง
UNAVAILABLE (รหัสข้อผิดพลาด HTTP = 503) เซิร์ฟเวอร์ทำงานหนักเกินไป เซิร์ฟเวอร์ประมวลผลคำขอไม่ได้ทันเวลา ลองส่งคำขอเดิมอีกครั้ง แต่ต้องทำดังนี้
- ทำตามส่วนหัว Retry-After หากมีอยู่ในการตอบกลับจากเซิร์ฟเวอร์การเชื่อมต่อ FCM
- ใช้ Exponential Backoff ในกลไกการลองอีกครั้ง (เช่น หากคุณรอ 1 วินาทีก่อนลองอีกครั้งครั้งแรก ให้รออย่างน้อย 2 วินาทีก่อนถึงอีก 1 วินาที จากนั้นรอ 4 วินาที เป็นต้น) หากคุณส่งข้อความจำนวนมาก ให้พิจารณาใช้ Jitter โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการจัดการการดำเนินการซ้ำ ผู้ส่งที่ทำให้เกิดปัญหามีความเสี่ยงที่จะถูกปฏิเสธ
INTERNAL (รหัสข้อผิดพลาด HTTP = 500) เกิดข้อผิดพลาดภายในที่ไม่ทราบสาเหตุ เซิร์ฟเวอร์พบข้อผิดพลาดขณะพยายามประมวลผลคำขอ คุณสามารถลองทำตามคำขอเดิมอีกครั้งโดยทำตามคำแนะนำในการจัดการการดำเนินการซ้ำ หากข้อผิดพลาดยังคงอยู่ โปรดติดต่อทีมสนับสนุนของ Firebase
THIRD_PARTY_AUTH_ERROR (รหัสข้อผิดพลาด HTTP = 401) ใบรับรอง APN หรือคีย์การตรวจสอบสิทธิ์พุชจากเว็บไม่ถูกต้องหรือขาดหายไป ไม่สามารถส่งข้อความที่กำหนดเป้าหมายไปยังอุปกรณ์ iOS หรือการลงทะเบียนพุชในเว็บ ตรวจสอบความถูกต้องของข้อมูลเข้าสู่ระบบสำหรับการพัฒนาและข้อมูลที่ใช้งานจริง