Firebase Cloud Messaging (FCM) มีตัวเลือกและความสามารถด้านการรับส่งข้อความที่หลากหลาย ข้อมูลในหน้านี้มีวัตถุประสงค์เพื่อช่วยให้คุณเข้าใจข้อความประเภทต่างๆ ของ FCM และสิ่งที่คุณทำได้กับข้อความเหล่านั้น
ประเภทข้อความ
เมื่อใช้ FCM คุณจะส่งข้อความ 2 ประเภทไปยังไคลเอ็นต์ได้ ดังนี้
- ข้อความแจ้งเตือน ซึ่งบางครั้งเรียกว่า "ข้อความแสดงผล" FCM SDK จะจัดการรายการเหล่านี้โดยอัตโนมัติ
- ข้อความข้อมูลซึ่งจัดการโดยแอปไคลเอ็นต์
ข้อความแจ้งเตือนประกอบด้วยชุดคีย์ที่ผู้ใช้มองเห็นซึ่งกําหนดไว้ล่วงหน้า ในทางตรงกันข้าม ข้อความข้อมูลจะมีเฉพาะคู่คีย์-ค่าที่กำหนดเองโดยผู้ใช้เท่านั้น ข้อความแจ้งเตือนอาจมีเพย์โหลด ข้อมูลที่ไม่บังคับได้ เพย์โหลดสูงสุดสำหรับข้อความทั้ง 2 ประเภทคือ 4, 096 ไบต์ ยกเว้นเมื่อส่งข้อความจากคอนโซล Firebase ซึ่งบังคับใช้จำนวนอักขระสูงสุด 1, 000 ตัว
สถานการณ์การใช้งาน | วิธีส่ง | |
---|---|---|
ข้อความแจ้งเตือน | SDK ของ FCM จะแสดงข้อความไปยังอุปกรณ์ของผู้ใช้ปลายทางในนามของแอปไคลเอ็นต์เมื่อแอปทำงานในพื้นหลัง มิเช่นนั้น หากแอปกำลังทำงานในเบื้องหน้าเมื่อได้รับการแจ้งเตือน โค้ดของแอปจะเป็นตัวกำหนดลักษณะการทำงาน ข้อความแจ้งเตือนมีชุดคีย์ที่ผู้ใช้มองเห็นได้ซึ่งกำหนดไว้ล่วงหน้า และเพย์โหลดข้อมูลที่ไม่บังคับของคู่คีย์-ค่าที่กำหนดเอง |
|
ข้อความข้อมูล | แอปไคลเอ็นต์มีหน้าที่ประมวลผลข้อความข้อมูล ข้อความข้อมูลมีเฉพาะคู่คีย์-ค่าที่กําหนดเองโดยไม่มีชื่อคีย์ที่สงวนไว้ (ดูด้านล่าง) | ในสภาพแวดล้อมที่เชื่อถือได้ เช่น
Cloud Functions
หรือเซิร์ฟเวอร์แอปของคุณ ให้ใช้
Admin SDK หรือ
โปรโตคอลเซิร์ฟเวอร์ FCM ในคำขอส่ง ให้ตั้งค่าคีย์ data
|
ใช้ข้อความแจ้งเตือนเมื่อคุณต้องการให้ FCM SDK จัดการการแสดงการแจ้งเตือนโดยอัตโนมัติเมื่อแอปทำงานอยู่เบื้องหลัง ใช้ข้อความข้อมูลเมื่อคุณต้องการประมวลผลข้อความด้วยโค้ดแอปไคลเอ็นต์ของคุณเอง
FCM สามารถส่งข้อความแจ้งเตือน รวมถึงเพย์โหลดข้อมูลที่ไม่บังคับได้ ในกรณีดังกล่าว FCM จะจัดการแสดงเพย์โหลดการแจ้งเตือน และแอปไคลเอ็นต์จะจัดการเพย์โหลดข้อมูล
ข้อความแจ้งเตือน
สำหรับการทดสอบหรือการตลาดและการกลับมามีส่วนร่วมของผู้ใช้ คุณส่งข้อความแจ้งเตือนโดยใช้คอนโซล Firebase ได้ Firebase Console มีการทดสอบ A/B ที่อิงตามข้อมูลวิเคราะห์เพื่อช่วยคุณปรับแต่งและปรับปรุงข้อความการตลาด
หากต้องการส่งข้อความแจ้งเตือนทางโปรแกรมโดยใช้ Admin SDK หรือโปรโตคอล FCM ให้ตั้งค่าคีย์ notification
ด้วยชุดตัวเลือกคีย์-ค่าที่กำหนดไว้แล้วที่จำเป็นสำหรับส่วนที่ผู้ใช้เห็นในข้อความแจ้งเตือน ตัวอย่างเช่น ต่อไปนี้คือข้อความแจ้งเตือนรูปแบบ JSON ในแอป IM ผู้ใช้จะเห็นข้อความที่มีชื่อว่า "โปรตุเกสปะทะเดนมาร์ก" และข้อความ "สุดยอด!" บนอุปกรณ์:
{ "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "notification":{ "title":"Portugal vs. Denmark", "body":"great match!" } } }
ข้อความแจ้งเตือนจะถูกส่งไปยังถาดการแจ้งเตือนเมื่อแอปอยู่ในเบื้องหลัง สําหรับแอปที่ทำงานอยู่เบื้องหน้า ข้อความจะได้รับการจัดการโดยฟังก์ชัน Callback
ดูรายการคีย์ที่กำหนดไว้ล่วงหน้าทั้งหมดที่ใช้สร้างข้อความการแจ้งเตือนได้จากเอกสารอ้างอิงออบเจ็กต์การแจ้งเตือนของโปรโตคอล HTTP v1
ข้อความเกี่ยวกับอินเทอร์เน็ต
ตั้งค่าคีย์ที่เหมาะสมกับคู่คีย์-ค่าที่กำหนดเองเพื่อส่งเพย์โหลดข้อมูลไปยังแอปไคลเอ็นต์
ตัวอย่างเช่น นี่คือตัวอย่างข้อความในรูปแบบ JSON ในแอป IM เดียวกันกับด้านบน ซึ่งข้อมูลจะรวมอยู่ในคีย์ data
ทั่วไป และคาดว่าแอปไคลเอ็นต์จะตีความเนื้อหา
{ "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "data":{ "Nick" : "Mario", "body" : "great match!", "Room" : "PortugalVSDenmark" } } }
ตัวอย่างด้านบนแสดงการใช้งานช่อง data
ระดับบนสุดหรือทั่วไป ซึ่งไคลเอ็นต์จะตีความข้อมูลในทุกแพลตฟอร์มที่ได้รับข้อความ
ในแต่ละแพลตฟอร์ม แอปไคลเอ็นต์จะได้รับเพย์โหลดข้อมูลในฟังก์ชัน Callback
การเข้ารหัสสำหรับข้อความข้อมูล
Android Transport Layer (ดูสถาปัตยกรรม FCM) ใช้การเข้ารหัสจากจุดต่อจุด คุณอาจตัดสินใจเพิ่มการเข้ารหัสจากต้นทางถึงปลายทางในข้อความข้อมูลได้ ทั้งนี้ขึ้นอยู่กับความต้องการ FCM ไม่มีโซลูชันแบบครบวงจร อย่างไรก็ตาม มีโซลูชันภายนอก เช่น Caplary หรือ DTLS
ข้อความการแจ้งเตือนที่มีเพย์โหลดข้อมูล (ไม่บังคับ)
คุณจะส่งข้อความแจ้งเตือนที่มีเพย์โหลดของคู่คีย์-ค่าที่กำหนดเองได้ทั้งแบบแบบเป็นโปรแกรมหรือผ่านคอนโซล Firebase ในเครื่องมือเขียนข้อความแจ้ง ให้ใช้ช่องข้อมูลที่กำหนดเองในตัวเลือกขั้นสูง
ลักษณะการทำงานของแอปเมื่อรับข้อความที่มีทั้งเพย์โหลดการแจ้งเตือนและเพย์โหลดข้อมูลจะขึ้นอยู่กับว่าแอปอยู่ในเบื้องหลังหรือในเบื้องหน้า โดยพื้นฐานแล้วขึ้นอยู่กับว่าแอปทำงานอยู่ในขณะที่ได้รับข้อความหรือไม่
- เมื่ออยู่ในเบื้องหลัง แอปจะได้รับเพย์โหลดการแจ้งเตือนในถาดการแจ้งเตือน และจัดการเพย์โหลดข้อมูลเมื่อผู้ใช้แตะการแจ้งเตือนเท่านั้น
- เมื่ออยู่ในเบื้องหน้า แอปจะได้รับออบเจ็กต์ข้อความที่มีเพย์โหลดทั้ง 2 รายการ
ต่อไปนี้เป็นข้อความรูปแบบ JSON ที่มีทั้งคีย์ notification
และคีย์ data
{ "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "notification":{ "title":"Portugal vs. Denmark", "body":"great match!" }, "data" : { "Nick" : "Mario", "Room" : "PortugalVSDenmark" } } }
การปรับแต่งข้อความในแพลตฟอร์มต่างๆ
ทั้ง Firebase Admin SDK และโปรโตคอล HTTP v1 ของ FCM v1 จะอนุญาตให้คำขอส่งข้อความตั้งค่าช่องทั้งหมดที่มีอยู่ในออบเจ็กต์ message
ซึ่งรวมถึงเนื้อหาต่อไปนี้
- ชุดของช่องทั่วไปสำหรับตีความโดยอินสแตนซ์ของแอปทั้งหมดที่ได้รับข้อความ
- ชุดฟิลด์เฉพาะแพลตฟอร์ม เช่น
AndroidConfig
และWebpushConfig
ที่ตีความโดยอินสแตนซ์ของแอปที่ทำงานบนแพลตฟอร์มที่ระบุเท่านั้น
การบล็อกเฉพาะแพลตฟอร์มช่วยให้คุณปรับแต่งข้อความสำหรับแพลตฟอร์มต่างๆ ได้อย่างยืดหยุ่นเพื่อให้จัดการได้อย่างถูกต้องเมื่อได้รับ แบ็กเอนด์ FCM จะพิจารณาพารามิเตอร์ที่ระบุทั้งหมดและปรับแต่งข้อความสำหรับแต่ละแพลตฟอร์ม
กรณีที่ควรใช้ฟิลด์ทั่วไป
ใช้ฟิลด์ทั่วไปเมื่อคุณทำสิ่งต่อไปนี้
- การกำหนดเป้าหมายอินสแตนซ์ของแอปในแพลตฟอร์มทั้งหมด ได้แก่ Apple, Android และเว็บ
- การส่งข้อความไปยังหัวข้อ
อินสแตนซ์แอปทั้งหมดไม่ว่าจะใช้แพลตฟอร์มใดก็สามารถตีความช่องทั่วไปต่อไปนี้ได้
กรณีที่ควรใช้ช่องเฉพาะแพลตฟอร์ม
ใช้ฟิลด์เฉพาะแพลตฟอร์มเมื่อต้องการทำสิ่งต่อไปนี้
- ส่งช่องไปยังบางแพลตฟอร์มเท่านั้น
- ส่งช่องเฉพาะแพลตฟอร์มนอกเหนือจากช่องทั่วไป
เมื่อใดก็ตามที่คุณต้องการส่งค่าไปยังแพลตฟอร์มที่เฉพาะเจาะจงเท่านั้น อย่าใช้ฟิลด์ทั่วไป ให้ใช้ฟิลด์เฉพาะแพลตฟอร์ม เช่น หากต้องการส่งการแจ้งเตือนไปยังแพลตฟอร์มและเว็บของ Apple เท่านั้น แต่ไม่ส่งไปยัง Android คุณต้องใช้ช่อง 2 ชุดแยกกัน ได้แก่ ช่องสำหรับ Apple และช่องสำหรับเว็บ
เมื่อส่งข้อความที่มีตัวเลือกการนำส่งที่เฉพาะเจาะจง ให้ใช้ช่องเฉพาะแพลตฟอร์มเพื่อตั้งค่า คุณสามารถระบุค่าที่แตกต่างกันในแต่ละแพลตฟอร์มได้หากต้องการ อย่างไรก็ตาม แม้ว่าคุณจะต้องการกำหนดค่าเดียวกันในทุกแพลตฟอร์ม คุณต้องใช้ช่องเฉพาะแพลตฟอร์ม เนื่องจากแต่ละแพลตฟอร์มอาจตีความค่านี้แตกต่างกันเล็กน้อย เช่น Android จะตั้งค่าการคงอยู่เป็นเวลาหมดอายุเป็นวินาที ส่วน Apple จะตั้งค่าเป็นวันที่หมดอายุ
เช่น ข้อความแจ้งเตือนที่มีตัวเลือกการนำส่งเฉพาะแพลตฟอร์ม
คําขอส่ง v1 ต่อไปนี้จะส่งชื่อและเนื้อหาการแจ้งเตือนทั่วไปไปยังทุกแพลตฟอร์ม รวมถึงส่งการลบล้างเฉพาะบางแพลตฟอร์มด้วย โดยเฉพาะอย่างยิ่ง คำขอมีลักษณะดังนี้
- ตั้งค่าการคงอยู่เป็นเวลานานสําหรับแพลตฟอร์ม Android และเว็บ ขณะที่ตั้งค่าลําดับความสําคัญของข้อความ APN (แพลตฟอร์ม Apple) เป็นการตั้งค่าต่ำ
- ตั้งค่าคีย์ที่เหมาะสมเพื่อกำหนดผลลัพธ์ของการแตะการแจ้งเตือนของผู้ใช้บน Android และ Apple ซึ่งได้แก่
click_action
และcategory
ตามลำดับ
{ "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "notification":{ "title":"Match update", "body":"Arsenal goal in added time, score is now 3-0" }, "android":{ "ttl":"86400s", "notification"{ "click_action":"OPEN_ACTIVITY_1" } }, "apns": { "headers": { "apns-priority": "5", }, "payload": { "aps": { "category": "NEW_MESSAGE_CATEGORY" } } }, "webpush":{ "headers":{ "TTL":"86400" } } } }
ดูรายละเอียดทั้งหมดเกี่ยวกับคีย์ที่ใช้ได้ในบล็อกเฉพาะแพลตฟอร์มในเนื้อหาข้อความได้ที่เอกสารอ้างอิง HTTP v1 ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างคำขอส่งที่มีเนื้อหาข้อความได้ที่สร้างคำขอส่งคำขอ
ตัวเลือกการจัดส่ง
FCM มีชุดตัวเลือกการนำส่งที่เฉพาะเจาะจงสำหรับข้อความที่ส่งไปยังอุปกรณ์ Android และอนุญาตให้ใช้ตัวเลือกที่คล้ายกันในแพลตฟอร์มและเว็บของ Apple เช่น รองรับการทำงานของข้อความ "ยุบได้" ใน Android ผ่าน collapse_key
ของ FCM, ใน Apple ผ่าน apns-collapse-id
และ JavaScript/เว็บผ่าน Topic
โปรดดูรายละเอียดจากคำอธิบายในส่วนนี้และเอกสารอ้างอิงที่เกี่ยวข้อง
ข้อความที่ยุบไม่ได้และยุบได้
ข้อความที่ยุบไม่ได้หมายความว่าแต่ละข้อความถูกส่งไปยังอุปกรณ์ ข้อความแบบไม่สามารถยุบได้จะแสดงเนื้อหาที่มีประโยชน์บางอย่าง ต่างจากข้อความแบบยุบได้ เช่น "การ ping" ที่ไม่มีเนื้อหาเพื่อส่งแอปบนอุปกรณ์เคลื่อนที่ให้ติดต่อเซิร์ฟเวอร์เพื่อดึงข้อมูล
กรณีการใช้งานข้อความที่ยุบไม่ได้โดยทั่วไปคือข้อความแชทหรือข้อความสำคัญ เช่น ในแอป IM คุณจะต้องนำส่งทุกข้อความ เนื่องจากข้อความแต่ละข้อความมีเนื้อหาแตกต่างกัน
สำหรับ Android ระบบจะจำกัดจำนวนข้อความที่เก็บได้ไว้ที่ 100 ข้อความโดยไม่ยุบ หากถึงขีดจำกัดแล้ว ข้อความที่จัดเก็บไว้ทั้งหมดจะถูกยกเลิก เมื่ออุปกรณ์กลับมาออนไลน์แล้ว อุปกรณ์จะได้รับข้อความพิเศษที่ระบุว่าถึงขีดจำกัดแล้ว จากนั้นแอปจะจัดการสถานการณ์ได้อย่างถูกต้อง ซึ่งโดยปกติแล้วจะทำด้วยการขอให้ซิงค์ทั้งหมดจากเซิร์ฟเวอร์ของแอป
ข้อความที่ยุบได้คือข้อความที่อาจแทนที่ด้วยข้อความใหม่หากยังไม่ได้ส่งไปยังอุปกรณ์
กรณีการใช้งานที่พบบ่อยของข้อความแบบยุบได้คือข้อความที่ใช้บอกแอปบนอุปกรณ์เคลื่อนที่ให้ซิงค์ข้อมูลจากเซิร์ฟเวอร์ เช่น แอปกีฬาที่อัปเดตคะแนนล่าสุดให้แก่ผู้ใช้ และมีเพียงข้อความล่าสุดเท่านั้นที่เกี่ยวข้อง
หากต้องการทําเครื่องหมายข้อความให้ยุบได้ใน Android ให้ใส่พารามิเตอร์ collapse_key
ในเพย์โหลดข้อความ โดยค่าเริ่มต้น คีย์การยุบจะเป็นชื่อแพ็กเกจแอปที่ลงทะเบียนในคอนโซล Firebase เซิร์ฟเวอร์ FCM สามารถจัดเก็บข้อความแบบยุบได้ 4 รายการพร้อมกันต่ออุปกรณ์ โดยแต่ละรายการจะมีคีย์การยุบที่แตกต่างกัน หากมีจำนวนมากกว่านี้ FCM จะเก็บคีย์การยุบไว้เพียง 4 รายการเท่านั้น โดยไม่มีการรับประกันว่าระบบจะเก็บคีย์ใดไว้
ข้อความหัวข้อที่ไม่มีเพย์โหลดจะยุบได้โดยค่าเริ่มต้น ข้อความแจ้งเตือนจะยุบได้เสมอและจะไม่สนใจพารามิเตอร์ collapse_key
ฉันควรใช้รูปแบบใด
ข้อความแบบยุบได้ถือเป็นตัวเลือกที่ดีกว่าในแง่ประสิทธิภาพ ตราบใดที่แอปไม่จำเป็นต้องใช้ข้อความแบบยุบไม่ได้ อย่างไรก็ตาม หากคุณใช้ข้อความแบบยุบได้ โปรดทราบว่า FCM อนุญาตให้ใช้คีย์การยุบที่แตกต่างกันได้สูงสุด 4 คีย์เท่านั้น โดย FCM ต่อโทเค็นการลงทะเบียน 1 รายการ ณ เวลาหนึ่งๆ คุณต้องไม่เกินจํานวนนี้ มิฉะนั้นจะก่อให้เกิดผลกระทบที่คาดการณ์ไม่ได้
สถานการณ์การใช้งาน | วิธีส่ง | |
---|---|---|
ยุบไม่ได้ | ทุกข้อความมีความสำคัญต่อแอปไคลเอ็นต์และต้องมีการนำส่ง | โดยค่าเริ่มต้น ข้อความทั้งหมดจะยุบไม่ได้ ยกเว้นข้อความแจ้งเตือน |
พับได้ | เมื่อมีข้อความที่ใหม่กว่าที่แสดงข้อความเก่าที่เกี่ยวข้องซึ่งไม่เกี่ยวข้องกับแอปไคลเอ็นต์ FCM จะแทนที่ข้อความเก่า ตัวอย่างเช่น ข้อความที่ใช้เริ่มการซิงค์ข้อมูลจากเซิร์ฟเวอร์ หรือข้อความแจ้งเตือนที่ล้าสมัย | ตั้งค่าพารามิเตอร์ที่เหมาะสมในคำขอส่งข้อความ ดังนี้
|
การตั้งค่าลำดับความสำคัญของข้อความ
คุณมี 2 ตัวเลือกในการกำหนดลำดับความสำคัญของการนำส่งให้กับข้อความดาวน์สตรีม ได้แก่ ลำดับความสำคัญสูงและปกติ แม้ว่าลักษณะการทํางานจะแตกต่างกันเล็กน้อยในแต่ละแพลตฟอร์ม แต่การส่งข้อความที่มีลําดับความสําคัญปกติและสูงจะทํางานดังนี้
ลําดับความสําคัญตามปกติ ระบบจะส่งข้อความที่มีลําดับความสําคัญปกติทันทีเมื่อแอปอยู่เบื้องหน้า สำหรับแอปที่ทำงานอยู่เบื้องหลัง การส่งอาจล่าช้า สำหรับข้อความที่จำกัดเวลา เช่น การแจ้งเตือนอีเมลใหม่ การซิงค์ UI อยู่ตลอด หรือการซิงค์ข้อมูลแอปในเบื้องหลัง ให้เลือกลำดับความสำคัญในการแสดงโฆษณาตามปกติ
ลำดับความสำคัญสูง FCM จะพยายามส่งข้อความที่มีลำดับความสำคัญสูงทันที แม้ว่าอุปกรณ์จะอยู่ในโหมดประหยัดพลังงานก็ตาม ข้อความที่มีลําดับความสําคัญสูงมีไว้สําหรับเนื้อหาที่ผู้ใช้มองเห็นและมีความจําเป็นเร่งด่วน
ต่อไปนี้คือตัวอย่างข้อความที่มีลําดับความสําคัญเป็นปกติซึ่งส่งผ่านโปรโตคอล FCM HTTP v1 เพื่อแจ้งให้สมาชิกนิตยสารทราบว่ามีเนื้อหาใหม่ให้ดาวน์โหลด
{ "message":{ "topic":"subscriber-updates", "notification":{ "body" : "This week's edition is now available.", "title" : "NewsMagazine.com", }, "data" : { "volume" : "3.21.15", "contents" : "http://www.news-magazine.com/world-week/21659772" }, "android":{ "priority":"normal" }, "apns":{ "headers":{ "apns-priority":"5" } }, "webpush": { "headers": { "Urgency": "high" } } } }
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่าลําดับความสําคัญของข้อความตามแพลตฟอร์มได้ดังนี้
- เอกสารประกอบเกี่ยวกับ APN
- ตั้งค่าและจัดการลำดับความสำคัญของข้อความ (Android)
- ความเร่งด่วนของข้อความพุชบนเว็บ
กรณีการใช้งานที่สำคัญต่อชีวิต
FCM API ไม่ได้ออกแบบมาสำหรับการแจ้งเตือนเหตุฉุกเฉินหรือกิจกรรมอื่นๆ ที่มีความเสี่ยงสูง ซึ่งการใช้งานหรือความล้มเหลวของ FCM API อาจส่งผลให้เกิดการเสียชีวิต การบาดเจ็บส่วนบุคคล หรือความเสียหายต่อสิ่งแวดล้อม (เช่น ปฏิบัติการของหน่วยงานพลังงานนิวเคลียร์ การควบคุมจราจรทางอากาศ หรือระบบช่วยชีวิต) การใช้งานดังกล่าวเป็นสิ่งต้องห้ามอย่างชัดแจ้งภายใต้ส่วนที่ 4. ก. 7 ของข้อกำหนดในการให้บริการ คุณเป็นผู้รับผิดชอบแต่เพียงผู้เดียวในการจัดการแอปให้เป็นไปตามข้อกำหนด และความเสียหายที่เกิดจากการไม่ปฏิบัติตามข้อกำหนด Google ให้บริการ API "ตามที่เป็นอยู่" และขอสงวนสิทธิ์ในการหยุดให้บริการ API หรือส่วนหนึ่งส่วนใดหรือฟีเจอร์ใดๆ หรือสิทธิ์เข้าถึงของคุณใน API ดังกล่าวไม่ว่าด้วยเหตุผลใดและเมื่อใดก็ตาม โดยไม่มีความรับผิดหรือภาระหน้าที่อื่นๆ กับคุณหรือผู้ใช้ของคุณ
การตั้งค่าอายุการใช้งานของข้อความ
โดยปกติแล้ว FCM จะส่งข้อความทันทีหลังจากส่ง อย่างไรก็ตาม วิธีนี้อาจไม่สามารถทำได้เสมอไป เช่น หากแพลตฟอร์มเป็น Android อุปกรณ์อาจปิดอยู่ ออฟไลน์ หรือไม่พร้อมใช้งาน หรือ FCM อาจจงใจเลื่อนข้อความออกไปเพื่อไม่ให้แอปใช้ทรัพยากรมากเกินไปและส่งผลเสียต่ออายุการใช้งานแบตเตอรี่
ในกรณีนี้ FCM จะจัดเก็บข้อความและส่งทันทีที่เป็นไปได้ แม้ว่าในกรณีส่วนใหญ่แล้ว จะไม่มีปัญหา แต่ก็มีบางแอปที่อาจส่งข้อความล่าช้าไม่ได้เช่นกัน ตัวอย่างเช่น ถ้าข้อความเป็นการแจ้งเตือนสายเรียกเข้าหรือวิดีโอแชท ข้อความจะมีความหมายเพียงช่วงสั้นๆ ก่อนที่สายจะสิ้นสุดลง หรือหากข้อความนั้นเป็นคำเชิญเข้าร่วมกิจกรรม ก็ไม่มีประโยชน์หากได้รับข้อความดังกล่าวหลังจากที่กิจกรรมสิ้นสุดลง
ใน Android และเว็บ/JavaScript คุณสามารถระบุอายุการใช้งานสูงสุดของข้อความได้ ค่าต้องเป็นระยะเวลาตั้งแต่ 0 ถึง 2,419,200 วินาที (28 วัน) และสอดคล้องกับระยะเวลาสูงสุดที่ FCM จะจัดเก็บและพยายามนำส่งข้อความ คำขอที่ไม่มีช่องนี้จะมีค่าเริ่มต้นเป็นระยะเวลาสูงสุด 4 สัปดาห์
ตัวอย่างการใช้งานฟีเจอร์นี้ ได้แก่
- สายเรียกเข้าของวิดีโอแชท
- กิจกรรมคำเชิญที่กำลังจะหมดอายุ
- กิจกรรมในปฏิทิน
ข้อดีอีกอย่างหนึ่งของการระบุอายุการใช้งานของข้อความคือ FCM จะไม่ใช้การควบคุมข้อความที่ยุบได้กับข้อความที่มีค่า Time to Live เป็น 0 วินาที
FCM พยายามอย่างดีที่สุดในการจัดการข้อความที่ต้องส่ง "ตอนนี้หรือไม่มีวันส่ง" โปรดทราบว่าค่า time_to_live
ที่เป็น 0 หมายความว่าระบบจะทิ้งข้อความที่ไม่สามารถส่งได้ทันที อย่างไรก็ตาม เนื่องจากข้อความดังกล่าวจะไม่มีการจัดเก็บ จึงเป็นการหน่วงเวลาที่ดีที่สุดสำหรับการส่งข้อความการแจ้งเตือน
ต่อไปนี้เป็นตัวอย่างของคำขอที่มี TTL:
{ "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "data":{ "Nick" : "Mario", "body" : "great match!", "Room" : "PortugalVSDenmark" }, "apns":{ "headers":{ "apns-expiration":"1604750400" } }, "android":{ "ttl":"4500s" }, "webpush":{ "headers":{ "TTL":"4500" } } } }
อายุการใช้งานของข้อความ
เมื่อเซิร์ฟเวอร์แอปโพสต์ข้อความไปยัง FCM และได้รับรหัสข้อความกลับ ก็ไม่ได้หมายความว่าข้อความได้รับการนำส่งไปยังอุปกรณ์แล้ว แต่หมายความว่าระบบยอมรับให้มีการนำส่ง สิ่งที่จะเกิดขึ้นกับข้อความหลังจากยอมรับนั้นขึ้นอยู่กับหลายปัจจัย
ในกรณีที่ดีที่สุด หากอุปกรณ์เชื่อมต่อกับ FCM, หน้าจอเปิดอยู่ และไม่มีข้อจำกัดการจำกัดความเร็ว ระบบจะส่งข้อความทันที
หากอุปกรณ์เชื่อมต่ออยู่แต่อยู่ในโหมดสลีป FCM จะจัดเก็บข้อความที่มีลําดับความสําคัญต่ำไว้จนกว่าอุปกรณ์จะออกจากโหมดสลีป และตรงนี้ก็เป็นหน้าที่ของแฟล็ก collapse_key
คือ หากมีข้อความที่มีคีย์ยุบ (และโทเค็นการลงทะเบียน) เดียวกันเก็บอยู่และกำลังรอส่ง ระบบจะทิ้งข้อความเก่าและข้อความใหม่จึงเกิดขึ้น (กล่าวคือข้อความเก่าจะยุบโดยข้อความใหม่) แต่หากไม่ได้ตั้งค่าคีย์ยุบไว้ ระบบจะเก็บทั้งข้อความใหม่และข้อความเก่าไว้สำหรับการส่งในอนาคต
หากอุปกรณ์ไม่ได้เชื่อมต่อกับ FCM ระบบจะจัดเก็บข้อความไว้จนกว่าจะมีการเชื่อมต่อ (ตามกฎการยุบคีย์) เมื่อเชื่อมต่อแล้ว FCM จะส่งข้อความที่รอทั้งหมดไปยังอุปกรณ์ หากอุปกรณ์ไม่เชื่อมต่ออีกเลย (เช่น มีการรีเซ็ตเป็นค่าเริ่มต้น) ข้อความจะหมดเวลาและถูกทิ้งออกจากพื้นที่เก็บข้อมูล FCM ระยะหมดเวลาเริ่มต้นคือ 4 สัปดาห์ เว้นแต่จะมีการตั้งค่า Flag time_to_live
วิธีดูข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับการนำส่งข้อความ
ดูข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับการส่งข้อความบนแพลตฟอร์ม Android หรือ Apple ได้ที่ หน้าแดชบอร์ดการรายงาน FCM ซึ่งบันทึกจำนวนข้อความที่ส่งและเปิดในอุปกรณ์ Apple และ Android พร้อมทั้งข้อมูลของ "การแสดงผล" (การแจ้งเตือนที่ผู้ใช้เห็น) สำหรับแอป Android
สำหรับอุปกรณ์ Android ที่เปิดใช้การรับส่งข้อความในช่องทางโดยตรง หากอุปกรณ์ไม่ได้เชื่อมต่อกับ FCM เป็นเวลานานกว่า 1 เดือน FCM จะยังคงยอมรับข้อความแต่จะยกเลิกข้อความทันที หากอุปกรณ์เชื่อมต่อภายใน 4 สัปดาห์นับจากข้อความสุดท้ายที่คุณส่งถึงอุปกรณ์ ไคลเอ็นต์จะได้รับ Callback onDeletedMessages() จากนั้นแอปจะจัดการสถานการณ์ได้อย่างเหมาะสม โดยปกติแล้วคือจะขอการซิงค์แบบเต็มจากเซิร์ฟเวอร์แอป
สุดท้าย เมื่อ FCM พยายามส่งข้อความไปยังอุปกรณ์และมีการถอนการติดตั้งแอป FCM จะทิ้งข้อความนั้นทันทีและทำให้โทเค็นการลงทะเบียนใช้งานไม่ได้ ความพยายามที่จะส่งข้อความไปยังอุปกรณ์ในอนาคตจะส่งผลให้เกิดข้อผิดพลาด NotRegistered
การควบคุมและโควต้า
เป้าหมายของเราคือการส่งข้อความทุกข้อความที่ส่งผ่าน FCM เสมอ อย่างไรก็ตาม การส่งข้อความทุกข้อความอาจส่งผลให้ผู้ใช้ได้รับประสบการณ์โดยรวมที่ไม่ดี ในกรณีอื่นๆ เราต้องกำหนดขอบเขตเพื่อให้ FCM ให้บริการที่ปรับขนาดได้สำหรับผู้ส่งทุกคน ประเภทของขีดจำกัดและโควต้าที่อธิบายในส่วนนี้จะช่วยเราสร้างความสมดุลระหว่างปัจจัยสำคัญเหล่านี้
การควบคุมการรับส่งข้อความขาลง
HTTP v1 API เปิดตัวโควต้าต่อโปรเจ็กต์ต่อนาทีสำหรับการรับส่งข้อความดาวน์สตรีม โควต้าเริ่มต้น 6 แสนข้อความต่อนาทีครอบคลุมนักพัฒนาแอปกว่า 99% FCM ราย ในขณะเดียวกันก็ปกป้องความเสถียรของระบบและลดผลกระทบของโปรเจ็กต์ที่เพิ่มขึ้นอย่างรวดเร็ว
รูปแบบการเข้าชมที่เพิ่มขึ้นอย่างรวดเร็วอาจส่งผลให้เกิดข้อผิดพลาดเกี่ยวกับโควต้าที่เกิน ในสถานการณ์ที่เกินโควต้า ระบบจะแสดงรหัสสถานะ HTTP 429 (QUOTA_EXCEEDED) จนกว่าจะมีการเติมโควต้าในนาทีถัดไป การตอบกลับ 429 อาจแสดงผลในกรณีที่โหลดมากเกินไป เราขอแนะนำให้คุณจัดการ 429 ตามคำแนะนำที่เผยแพร่
โปรดทราบว่า
- โควต้าดาวน์สตรีมจะวัดข้อความ ไม่ใช่คำขอ
- ระบบนับข้อผิดพลาดของไคลเอ็นต์ (รหัสสถานะ HTTP 400-499) (ยกเว้น 429)
- โควต้าเป็นต่อนาที แต่นาทีเหล่านี้ไม่สอดคล้องกับนาฬิกา
โควต้าการตรวจสอบ
คุณดูโควต้า การใช้งาน และข้อผิดพลาดได้ในคอนโซล Google Cloud โดยทำดังนี้
- ไปที่คอนโซล Google Cloud
- เลือกAPI และบริการ
- เลือก Firebase Cloud Messaging API จากรายการตาราง
- เลือกขีดจำกัดของโควต้าและระบบ
หมายเหตุ: กราฟเหล่านี้ไม่ได้ปรับเวลาให้สอดคล้องกับนาทีโควต้าอย่างแม่นยำ ซึ่งหมายความว่าระบบอาจแสดง 429 เมื่อการเข้าชมดูเหมือนว่าต่ำกว่าโควต้า
การขอเพิ่มโควต้า
โปรดตรวจสอบสิ่งต่อไปนี้ก่อนขอเพิ่มโควต้า
- การใช้งานของคุณมัก ≥ 80% ของโควต้าเป็นเวลาอย่างน้อย 5 นาทีติดต่อกันต่อวัน
- คุณมีอัตราข้อผิดพลาดของไคลเอ็นต์น้อยกว่า 5% โดยเฉพาะในช่วงที่มีการเข้าชมสูงสุด
- คุณปฏิบัติตามแนวทางปฏิบัติแนะนำสำหรับการส่งข้อความในวงกว้าง
หากมีคุณสมบัติตรงตามเกณฑ์เหล่านี้ คุณจะส่งคำขอเพิ่มโควต้าได้สูงสุด +25% และ FCM จะพยายามอย่างเต็มที่เพื่อตอบสนองคำขอ (รับประกันไม่ได้ว่ามีการเพิ่มโควต้า)
หากคุณต้องการโควต้าการรับส่งข้อความดาวน์สตรีมเพิ่มเติมเนื่องจากการเปิดตัวที่ใกล้เข้ามาหรือกิจกรรมชั่วคราว ให้ขอโควต้าล่วงหน้าอย่างน้อย 15 วันเพื่อให้มีเวลาเพียงพอในการจัดการคำขอ สำหรับคำขอขนาดใหญ่ (>18 ล้านข้อความต่อนาที) คุณต้องแจ้งให้เราทราบล่วงหน้าอย่างน้อย 30 วัน การเปิดตัวและคำขอกิจกรรมพิเศษยังคงขึ้นอยู่กับ ข้อกำหนดของอัตราส่วนข้อผิดพลาดของไคลเอ็นต์และแนวทางปฏิบัติที่ดีที่สุด
โปรดดูคำถามที่พบบ่อยเกี่ยวกับโควต้า FCM
ขีดจำกัดข้อความหัวข้อ
อัตราการเพิ่ม/ลบการสมัครสมาชิกหัวข้อจำกัดไว้ที่ 3,000 QPS ต่อโปรเจ็กต์
โปรดดูอัตราการส่งข้อความที่หัวข้อการควบคุมแฟนเอาต์
การควบคุม Fanout
แฟนเอาต์ข้อความคือกระบวนการส่งข้อความไปยังอุปกรณ์หลายเครื่อง เช่น เมื่อคุณกำหนดหัวข้อและกลุ่มเป้าหมาย หรือเมื่อคุณใช้ตัวเขียนการแจ้งเตือนเพื่อกำหนดกลุ่มเป้าหมายหรือกลุ่มผู้ใช้
การส่งต่อข้อความจะไม่เกิดขึ้นทันที คุณจึงอาจเห็นการส่งต่อหลายรายการเกิดขึ้นพร้อมกันในบางครั้ง เราจำกัดจำนวน Fanout ข้อความพร้อมกัน ต่อโปรเจ็กต์ไว้ที่ 1,000 ครั้ง หลังจากนั้น เราอาจปฏิเสธคำขอ Fanout เพิ่มเติมหรือเลื่อนการแฟนเอาต์คำขอออกไปจนกว่าแฟนเอาต์ที่อยู่ระหว่างดำเนินการจะเสร็จสมบูรณ์
อัตราแฟนเอาต์ที่ทำได้จริงจะขึ้นอยู่กับจํานวนโปรเจ็กต์ที่ขอแฟนเอาต์พร้อมกัน อัตราแฟนเอาต์ 10,000 QPS สำหรับโปรเจ็กต์แต่ละรายการนั้นไม่ใช่เรื่องแปลก แต่ตัวเลขดังกล่าวไม่ใช่การรับประกันและเป็นผลมาจากภาระทั้งหมดในระบบ โปรดทราบว่าความสามารถในการแยกสัญญาณที่มีอยู่จะแบ่งระหว่างโปรเจ็กต์ ไม่ใช่คำขอแยกสัญญาณ ดังนั้น หากโปรเจ็กต์ของคุณมี Fanout 2 รายการที่อยู่ระหว่างดำเนินการ Fanout แต่ละครั้งจะเห็นเพียงครึ่งหนึ่งของอัตราการ Fanout ที่ใช้ได้ วิธีที่แนะนำในการเพิ่มความเร็วของแฟนเอาต์ (Fanout) สูงสุดคือการมี Fanout ที่ใช้งานอยู่ครั้งละ 1 รายการเท่านั้น
การควบคุมข้อความที่ยุบได้
ตามที่อธิบายไว้ข้างต้น ข้อความที่ยุบได้คือการแจ้งเตือนที่ไม่มีเนื้อหาซึ่งออกแบบมาเพื่อให้ยุบทับกัน ในกรณีที่นักพัฒนาแอปส่งข้อความเดิมซ้ำๆ ไปยังแอปบ่อยเกินไป เราจะเลื่อนเวลา (จำกัด) ข้อความเพื่อลดผลกระทบต่อแบตเตอรี่ของผู้ใช้
ตัวอย่างเช่น หากคุณส่งคำขอซิงค์อีเมลใหม่จำนวนมากไปยังอุปกรณ์เครื่องเดียว เราอาจเลื่อนคำขอซิงค์อีเมลถัดไปออกไป 2-3 นาทีเพื่อให้อุปกรณ์ซิงค์ในอัตราเฉลี่ยที่ต่ำลง การจำกัดนี้ทำขึ้นเพื่อจำกัดผลกระทบต่อแบตเตอรี่ที่ผู้ใช้ได้รับอย่างเคร่งครัด
หากกรณีการใช้งานของคุณจำเป็นต้องใช้รูปแบบการส่งภาพถ่ายอัจฉริยะระดับสูง ข้อความที่ไม่สามารถยุบได้อาจเป็นตัวเลือกที่เหมาะสม สำหรับข้อความดังกล่าว โปรดใส่เนื้อหาในข้อความดังกล่าวเพื่อลดต้นทุนแบตเตอรี่
เราจำกัดข้อความแบบยุบได้ไว้ที่ 20 ข้อความต่อแอปต่ออุปกรณ์ โดยระบบจะเพิ่มข้อความใหม่ 1 ข้อความทุก 3 นาที
การควบคุมเซิร์ฟเวอร์ XMPP
เราจำกัดอัตราการที่คุณเชื่อมต่อกับเซิร์ฟเวอร์ XMPP ของ FCM ไว้ที่ 400 ครั้งต่อนาทีต่อโปรเจ็กต์ การดำเนินการนี้ไม่ควรเป็นปัญหาในการนำส่งข้อความ แต่มีความสำคัญต่อความเสถียรของระบบ FCM อนุญาตให้เชื่อมต่อพร้อมกันได้ 2,500 รายการต่อโปรเจ็กต์
สำหรับการรับส่งข้อความอัปสตรีมด้วย XMPP FCM จะจำกัดข้อความอัปสตรีมไว้ที่ 1,500,000/นาทีต่อโปรเจ็กต์ เพื่อหลีกเลี่ยงไม่ให้เซิร์ฟเวอร์ปลายทางอัปสตรีมทำงานหนักเกินไป
เราจำกัดข้อความขาขึ้นต่ออุปกรณ์ไว้ที่ 1,000 ข้อความ/นาทีเพื่อป้องกันไม่ให้แบตเตอรี่หมดจากลักษณะการทำงานที่ไม่ดีของแอป
อัตราการส่งข้อความสูงสุดไปยังอุปกรณ์เครื่องเดียว
สำหรับ Android คุณสามารถส่งข้อความได้สูงสุด 240 ข้อความ/นาที และ 5,000 ข้อความ/ชั่วโมงไปยังอุปกรณ์เครื่องเดียว เกณฑ์สูงนี้ช่วยให้มีการเข้าชมเพิ่มขึ้นอย่างรวดเร็วในระยะสั้น เช่น เมื่อผู้ใช้โต้ตอบผ่านแชทอย่างรวดเร็ว ขีดจำกัดนี้จะป้องกันข้อผิดพลาดในการส่งตรรกะไม่ให้แบตเตอรี่ในอุปกรณ์หมดโดยไม่ตั้งใจ
สำหรับ iOS เราจะแสดงผลข้อผิดพลาดเมื่ออัตราเกินขีดจำกัดของ APN
พอร์ต FCM และไฟร์วอลล์
หากองค์กรมีไฟร์วอลล์เพื่อจำกัดการรับส่งข้อมูลไปยังหรือจากอินเทอร์เน็ต คุณต้องกำหนดค่าไฟร์วอลล์เพื่ออนุญาตให้อุปกรณ์เคลื่อนที่เชื่อมต่อกับ FCM เพื่อให้อุปกรณ์ในเครือข่ายรับข้อความได้ โดยทั่วไปแล้ว FCM จะใช้พอร์ต 5228 แต่บางครั้งก็ใช้ 443, 5229 และ 5230
FCM จะไม่ระบุ IP ที่เจาะจงสำหรับอุปกรณ์ที่เชื่อมต่อในเครือข่าย เนื่องจากช่วง IP ของเราเปลี่ยนแปลงบ่อยเกินไปและกฎไฟร์วอลล์อาจล้าสมัย ซึ่งส่งผลต่อประสบการณ์ของผู้ใช้ หากจะให้ดี คุณควรใช้พอร์ต 5228-5230 และ 443 โดยไม่มีข้อจำกัด IP อย่างไรก็ตาม หากจำเป็นต้องจำกัด IP คุณควรเพิ่มที่อยู่ IP ทั้งหมดที่ระบุใน goog.json เป็นรายการที่อนุญาต รายการขนาดใหญ่นี้ได้รับการอัปเดตเป็นประจำ และเราขอแนะนำให้คุณอัปเดตกฎเป็นประจำทุกเดือน ปัญหาที่เกิดจากข้อจํากัด IP ของไฟร์วอลล์มักจะเกิดขึ้นเป็นพักๆ และวินิจฉัยได้ยาก
เรามีชุดชื่อโดเมนที่อยู่ในรายการที่อนุญาตแทนที่อยู่ IP ได้ ชื่อโฮสต์เหล่านั้นแสดงอยู่ด้านล่าง หากเราเริ่มใช้ชื่อโฮสต์เพิ่มเติม เราจะอัปเดตรายการที่นี่ การใช้ชื่อโดเมนสำหรับกฎไฟร์วอลล์อาจทำงานได้หรือไม่ใช้งานได้ในอุปกรณ์ไฟร์วอลล์ของคุณ
พอร์ต TCP ที่เปิด:
- 5228
- 5229
- 5230
- 443
ชื่อโฮสต์ที่จะเปิด:
- mtalk.google.com
- mtalk4.google.com
- mtalk-staging.google.com
- mtalk-dev.google.com
- alt1-mtalk.google.com
- alt2-mtalk.google.com
- alt3-mtalk.google.com
- alt4-mtalk.google.com
- alt5-mtalk.google.com
- alt6-mtalk.google.com
- alt7-mtalk.google.com
- alt8-mtalk.google.com
- android.apis.google.com
- device-provisioning.googleapis.com
- firebaseinstallations.googleapis.com
ไฟร์วอลล์การเปลี่ยนที่อยู่เครือข่ายและ/หรือการตรวจสอบแพ็กเก็ตแบบมีสถานะ:
หากเครือข่ายของคุณใช้การเปลี่ยนที่อยู่เครือข่าย (NAT) หรือการตรวจสอบแพ็กเก็ตแบบมีสถานะ (SPI) ให้ใช้การหมดเวลา 30 นาทีขึ้นไปสําหรับการเชื่อมต่อผ่านพอร์ต 5228-5230 ซึ่งทำให้เราสามารถมอบการเชื่อมต่อ ที่เชื่อถือได้ขณะที่ลดการใช้แบตเตอรี่ของอุปกรณ์เคลื่อนที่ของผู้ใช้
การโต้ตอบและความสามารถในการเลี่ยง VPN
Firebase Cloud Messaging ดำเนินการหลายขั้นตอนเพื่อให้มั่นใจว่าการเชื่อมต่อการรับส่งข้อความพุชจากโทรศัพท์ไปยังเซิร์ฟเวอร์มีความน่าเชื่อถือและพร้อมใช้งานบ่อยที่สุดเท่าที่จะทำได้ การใช้ VPN ทำให้การดำเนินการนี้มีความซับซ้อน
VPN จะปกปิดข้อมูลพื้นฐานที่ FCM จำเป็นต้องปรับการเชื่อมต่อเพื่อเพิ่มความน่าเชื่อถือและอายุการใช้งานแบตเตอรี่ให้ได้สูงสุด ในบางกรณี VPN จะตัดการเชื่อมต่อที่ทำงานอยู่นานๆ ออก ซึ่งส่งผลให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ไม่ดีเนื่องจากข้อความที่พลาดไปหรือล่าช้า หรือแบตเตอรี่หมดเร็ว เมื่อกำหนดค่า VPN ให้อนุญาต เราจะข้าม VPN โดยใช้การเชื่อมต่อที่เข้ารหัส (ผ่านเครือข่าย Wi-Fi หรือ LTE) เพื่อดูแลให้ได้รับประสบการณ์การใช้งานที่น่าเชื่อถือและใช้แบตเตอรี่ การใช้ VPN ที่ข้ามได้ของ FCM จะใช้ได้เฉพาะกับแชแนลข้อความ Push ของ FCM FCM การเข้าชมอื่นๆ เช่น การเข้าชมเพื่อลงทะเบียน จะใช้ VPN หาก VPN เปิดใช้งานอยู่ เมื่อFCMการเชื่อมต่อข้าม VPN ผู้ใช้จะเสียสิทธิ์ประโยชน์เพิ่มเติมที่ VPN อาจให้ เช่น มาสก์ IP
VPN ต่างๆ จะมีวิธีการที่แตกต่างกันในการควบคุมว่าจะข้ามได้หรือไม่ โปรดดูวิธีการในเอกสารประกอบของ VPN นั้นๆ
หากไม่ได้กำหนดค่า VPN ให้ข้ามได้ Firebase Cloud Messaging จะใช้เครือข่าย VPN เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ ซึ่งอาจส่งผลให้ข้อความล่าช้าเป็นช่วงๆ และอาจทำให้แบตเตอรี่หมดเร็วขึ้นเนื่องจาก Cloud Messaging พยายามรักษาการเชื่อมต่อผ่านการเชื่อมต่อ VPN
ข้อมูลเข้าสู่ระบบ
คุณอาจต้องใช้ข้อมูลเข้าสู่ระบบต่อไปนี้จากโปรเจ็กต์ Firebase ทั้งนี้ขึ้นอยู่กับฟีเจอร์ FCM ที่คุณติดตั้งใช้งาน
รหัสโปรเจ็กต์ | ตัวระบุที่ไม่ซ้ำกันสำหรับโปรเจ็กต์ Firebase ซึ่งใช้ในคำขอที่ส่งไปยังปลายทาง HTTP v1 ของ FCM ค่านี้จะอยู่ในแผงการตั้งค่าของคอนโซล Firebase |
โทเค็นการลงทะเบียน | สตริงโทเค็นที่ไม่ซ้ำกันที่ระบุอินสแตนซ์ของแอปไคลเอ็นต์แต่ละรายการ ต้องระบุโทเค็นการลงทะเบียนสำหรับการรับส่งข้อความกลุ่มของอุปกรณ์เดียวและ กลุ่มอุปกรณ์ โปรดทราบว่าคุณต้องเก็บโทเค็นการลงทะเบียนไว้เป็นความลับ |
รหัสผู้ส่ง | ค่าตัวเลขที่ไม่ซ้ำกันซึ่งสร้างขึ้นเมื่อคุณสร้างโปรเจ็กต์ Firebase ซึ่งดูได้ในแท็บ Cloud Messaging ของคอนโซล Firebase แผงการตั้งค่า ระบบจะใช้รหัสผู้ส่งเพื่อระบุผู้ส่งแต่ละรายที่ส่งข้อความไปยังแอปไคลเอ็นต์ได้ |
โทเค็นเพื่อการเข้าถึง | โทเค็น OAuth 2.0 ที่มีอายุสั้นซึ่งให้สิทธิ์คำขอไปยัง HTTP v1 API โทเค็นนี้จะเชื่อมโยงกับบัญชีบริการที่เป็นของโปรเจ็กต์ Firebase หากต้องการสร้างและเปลี่ยนโทเค็นการเข้าถึง ให้ทําตามขั้นตอนที่อธิบายไว้ในการให้สิทธิ์ส่งคําขอ |
คีย์เซิร์ฟเวอร์ (สำหรับโปรโตคอลเดิมที่**เลิกใช้งานแล้ว**) | คีย์เซิร์ฟเวอร์ที่ให้สิทธิ์เซิร์ฟเวอร์แอปของคุณในการเข้าถึงบริการของ Google ซึ่งรวมถึงการส่งข้อความผ่านโปรโตคอลเดิม Firebase Cloud Messaging ที่เลิกใช้งานแล้ว สำคัญ: อย่าใส่คีย์เซิร์ฟเวอร์ในโค้ดของไคลเอ็นต์ และโปรดใช้เฉพาะคีย์เซิร์ฟเวอร์เพื่อให้สิทธิ์เซิร์ฟเวอร์แอป Android, แพลตฟอร์ม Apple และคีย์เบราว์เซอร์ถูกปฏิเสธโดย FCM |