Firebase Cloud Messaging (FCM) มีตัวเลือกและความสามารถด้านการรับส่งข้อความที่หลากหลาย ข้อมูลในหน้านี้มีไว้เพื่อช่วยให้คุณเข้าใจFCMข้อความประเภทต่างๆ และสิ่งที่คุณสามารถทํากับข้อความเหล่านั้น
ประเภทข้อความ
FCM ช่วยให้คุณส่งข้อความ 2 ประเภทถึงลูกค้าได้ ดังนี้
- ข้อความแจ้งเตือน ซึ่งบางครั้งเรียกว่า "ข้อความแสดงผล" FCM SDK จะจัดการรายการเหล่านี้โดยอัตโนมัติ
- ข้อความข้อมูลซึ่งแอปไคลเอ็นต์จัดการ
ข้อความแจ้งเตือนประกอบด้วยชุดคีย์ที่ผู้ใช้มองเห็นซึ่งกําหนดไว้ล่วงหน้า ในทางตรงกันข้าม ข้อความข้อมูลจะมีเฉพาะคู่คีย์-ค่าที่กำหนดเองโดยผู้ใช้เท่านั้น ข้อความการแจ้งเตือนอาจมีเพย์โหลดข้อมูลที่ไม่บังคับ เพย์โหลดสูงสุดสำหรับข้อความทั้ง 2 ประเภทคือ 4096 ไบต์ ยกเว้นเมื่อส่งข้อความจากคอนโซล Firebase ซึ่งจะบังคับใช้ขีดจำกัด 1,000 อักขระ
สถานการณ์การใช้งาน | วิธีส่ง | |
---|---|---|
ข้อความแจ้งเตือน | FCM SDK แสดงข้อความต่ออุปกรณ์ของผู้ใช้ปลายทางในนามของแอปไคลเอ็นต์เมื่อแอปทำงานอยู่เบื้องหลัง หรือหากแอปทำงานอยู่เบื้องหน้าเมื่อได้รับการแจ้งเตือน โค้ดของแอปจะเป็นตัวกำหนดลักษณะการทำงาน ข้อความการแจ้งเตือนจะมีชุดคีย์ที่ผู้ใช้มองเห็นซึ่งกําหนดไว้ล่วงหน้าและเพย์โหลดข้อมูลที่เลือกได้ของคู่คีย์-ค่าที่กําหนดเอง |
|
ข้อความข้อมูล | แอปไคลเอ็นต์มีหน้าที่รับผิดชอบในการประมวลผลข้อความข้อมูล ข้อความข้อมูลมีเฉพาะคู่คีย์-ค่าที่กําหนดเองโดยไม่มีชื่อคีย์ที่สงวนไว้ (ดูด้านล่าง) | ในสภาพแวดล้อมที่เชื่อถือได้ เช่น Cloud Functions หรือเซิร์ฟเวอร์แอป ให้ใช้Admin SDK หรือโปรโตคอลเซิร์ฟเวอร์ FCM ในคําขอส่ง ให้ตั้งค่าคีย์ data |
ใช้ข้อความแจ้งเตือนเมื่อคุณต้องการให้ FCM SDK จัดการการแสดงการแจ้งเตือนโดยอัตโนมัติเมื่อแอปทำงานอยู่เบื้องหลัง ใช้ข้อความข้อมูลเมื่อคุณต้องการประมวลผลข้อความด้วยโค้ดแอปไคลเอ็นต์ของคุณเอง
FCM สามารถส่งข้อความแจ้งเตือนพร้อมเพย์โหลดข้อมูล (ไม่บังคับ) ในกรณีเช่นนี้ FCM จะจัดการการแสดงเพย์โหลดการแจ้งเตือน และแอปไคลเอ็นต์จะจัดการเพย์โหลดข้อมูล
ข้อความแจ้งเตือน
คุณสามารถส่งข้อความแจ้งเตือนโดยใช้Firebaseคอนโซลสําหรับการทดสอบ การตลาด และการดึงดูดผู้ใช้ให้กลับมามีส่วนร่วมอีกครั้ง Firebase Console มีการทดสอบ A/B ที่อิงตามข้อมูลวิเคราะห์เพื่อช่วยคุณปรับแต่งและปรับปรุงข้อความการตลาด
หากต้องการส่งข้อความแจ้งเตือนแบบเป็นโปรแกรมโดยใช้ Admin SDK หรือโปรโตคอล FCM ให้ตั้งค่าคีย์ notification
ด้วยชุดตัวเลือกคีย์-ค่าที่กำหนดไว้ล่วงหน้าที่จำเป็นสำหรับส่วนที่ผู้ใช้มองเห็นของข้อความแจ้งเตือน ตัวอย่างเช่น ต่อไปนี้คือข้อความการแจ้งเตือนในรูปแบบ JSON ในแอป IM โดยผู้ใช้จะเห็นข้อความที่มีชื่อ "โปรตุเกส vs เดนมาร์ก" และข้อความ "การแข่งขันยอดเยี่ยม" บนอุปกรณ์
{ "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
ระดับบนสุดหรือทั่วไป ซึ่งไคลเอ็นต์ในทุกแพลตฟอร์มที่รับข้อความจะตีความ ในแอปแต่ละแพลตฟอร์ม แอปไคลเอ็นต์จะได้รับเพย์โหลดข้อมูลในฟังก์ชันการเรียกกลับ
การเข้ารหัสสำหรับข้อความข้อมูล
เลเยอร์การขนส่งของ Android (ดูสถาปัตยกรรม FCM) ใช้การเข้ารหัสจากต้นทางถึงปลายทาง คุณอาจเลือกเพิ่มการเข้ารหัสจากต้นทางถึงปลายทางในข้อความผ่านอินเทอร์เน็ต ทั้งนี้ขึ้นอยู่กับความต้องการ FCM ไม่ได้ให้บริการโซลูชันแบบครบวงจร อย่างไรก็ตาม มีโซลูชันภายนอก เช่น Capillary หรือ DTLS
ข้อความการแจ้งเตือนที่มีเพย์โหลดข้อมูล (ไม่บังคับ)
คุณสามารถส่งข้อความแจ้งที่มีเพย์โหลดของคู่คีย์-ค่าที่กำหนดเอง (ไม่บังคับ) ได้ทั้งแบบเป็นโปรแกรมหรือผ่านFirebaseคอนโซล ใน เครื่องมือเขียนข้อความแจ้ง ให้ใช้ช่องข้อมูลที่กำหนดเองในตัวเลือกขั้นสูง
ลักษณะการทํางานของแอปเมื่อได้รับข้อความที่มีทั้งพายโหลดการแจ้งเตือนและข้อมูลจะขึ้นอยู่กับว่าแอปทำงานอยู่ในเบื้องหลังหรือเบื้องหน้า กล่าวคือ แอปทำงานอยู่หรือไม่ ณ เวลาที่รับ
- เมื่อทำงานในเบื้องหลัง แอปจะได้รับเพย์โหลดการแจ้งเตือนในถาดการแจ้งเตือน และจัดการเฉพาะเพย์โหลดข้อมูลเมื่อผู้ใช้แตะการแจ้งเตือน
- เมื่อทำงานอยู่เบื้องหน้า แอปของคุณจะได้รับออบเจ็กต์ข้อความที่มีทั้งเพย์โหลด
ข้อความรูปแบบ 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 ของ 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" } } } }
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่าลําดับความสําคัญของข้อความสำหรับแต่ละแพลตฟอร์มได้ที่
- เอกสารประกอบ APNs
- ตั้งค่าและจัดการลำดับความสำคัญของข้อความ (Android)
- ความเร่งด่วนของข้อความ Push บนเว็บ
กรณีการใช้งานที่สำคัญต่อชีวิต
FCM API ไม่ได้ออกแบบมาสำหรับการแจ้งเตือนเหตุฉุกเฉินหรือกิจกรรมอื่นๆ ที่มีความเสี่ยงสูง ซึ่งการใช้งานหรือความล้มเหลวของ FCM API อาจส่งผลให้เกิดการเสียชีวิต การบาดเจ็บส่วนบุคคล หรือความเสียหายต่อสิ่งแวดล้อม (เช่น การปฏิบัติการของโรงงานพลังงานนิวเคลียร์ การควบคุมจราจรทางอากาศ หรือระบบช่วยชีวิต) การใช้งานดังกล่าวเป็นสิ่งต้องห้ามอย่างชัดแจ้งภายใต้ส่วนที่ 4. ก. 7 ของข้อกำหนดในการให้บริการ คุณมีหน้าที่รับผิดชอบแต่เพียงผู้เดียวในการจัดการการปฏิบัติตามข้อกำหนดของแอป รวมถึงความเสียหายใดๆ ที่เกิดจากการไม่ปฏิบัติตามข้อกำหนด Google ให้บริการ API "ตามที่เป็นอยู่" และขอสงวนสิทธิ์ในการหยุดให้บริการ API หรือบางส่วนหรือฟีเจอร์ต่างๆ หรือการเข้าถึงของคุณได้ทุกเมื่อไม่ว่าด้วยเหตุผลใดๆ โดยไม่มีความรับผิดหรือภาระหน้าที่อื่นๆ ต่อคุณหรือผู้ใช้ของคุณ
การตั้งค่าอายุการใช้งานของข้อความ
FCM มักจะนำส่งข้อความทันทีหลังจากที่ส่ง อย่างไรก็ตาม การดำเนินการนี้อาจไม่สามารถทำได้เสมอไป ตัวอย่างเช่น หากแพลตฟอร์มเป็น Android อุปกรณ์อาจปิดอยู่ ออฟไลน์ หรือใช้งานไม่ได้ หรือ FCM อาจจงใจเลื่อนข้อความเพื่อไม่ให้แอปใช้ทรัพยากรมากเกินไปและส่งผลเสียต่ออายุการใช้งานแบตเตอรี่
ในกรณีนี้ FCM จะจัดเก็บข้อความและส่งทันทีที่เป็นไปได้ แม้ว่าในกรณีส่วนใหญ่จะไม่เป็นปัญหา แต่ก็มีบางแอปที่ข้อความที่ส่งช้าอาจไม่ได้รับการนําส่งเลย ตัวอย่างเช่น หากข้อความเป็นการแจ้งเตือนสายเรียกเข้าหรือวิดีโอคอล ข้อความดังกล่าวจะมีความหมายเพียงช่วงสั้นๆ ก่อนการโทรจะสิ้นสุดลง หรือหากข้อความเป็นคำเชิญให้เข้าร่วมกิจกรรม ข้อความดังกล่าวจะไร้ประโยชน์หากได้รับหลังจากกิจกรรมสิ้นสุดลง
ใน Android และเว็บ/JavaScript คุณสามารถระบุอายุการใช้งานสูงสุดของข้อความได้ ค่าต้องเป็นระยะเวลาตั้งแต่ 0 ถึง 2,419,200 วินาที (28 วัน) และสอดคล้องกับระยะเวลาสูงสุดที่ FCM จะจัดเก็บและพยายามนำส่งข้อความ คำขอที่ไม่มีช่องนี้จะมีค่าเริ่มต้นเป็นระยะเวลาสูงสุด 4 สัปดาห์
ตัวอย่างการใช้งานฟีเจอร์นี้ ได้แก่
- สายเรียกเข้าวิดีโอแชท
- กิจกรรมคำเชิญที่กำลังจะหมดอายุ
- กิจกรรมในปฏิทิน
ข้อดีอีกประการหนึ่งในการระบุอายุของข้อความคือ FCM จะไม่จำกัดจำนวนข้อความแบบยุบได้สำหรับข้อความที่มีค่าการอยู่รอด 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 จะจัดเก็บข้อความที่มีลําดับความสําคัญต่ำไว้จนกว่าอุปกรณ์จะออกจากโหมดสลีป ด้วยเหตุนี้ FLAG collapse_key
จึงมีบทบาทสำคัญ หากมีข้อความที่มีคีย์การยุบ (และโทเค็นการลงทะเบียน) เดียวกันซึ่งจัดเก็บไว้แล้วและรอการส่ง ระบบจะทิ้งข้อความเก่าและแทนที่ด้วยข้อความใหม่ (กล่าวคือ ข้อความใหม่จะยุบข้อความเก่า) อย่างไรก็ตาม หากไม่ได้ตั้งค่าคีย์การยุบ ระบบจะจัดเก็บทั้งข้อความใหม่และข้อความเก่าไว้เพื่อนำส่งในอนาคต
หากอุปกรณ์ไม่ได้เชื่อมต่อกับ FCM ระบบจะจัดเก็บข้อความไว้จนกว่าจะสร้างการเชื่อมต่อ (โดยยังคงเป็นไปตามกฎของคีย์การยุบ) เมื่อเชื่อมต่อแล้ว FCM จะส่งข้อความที่รอทั้งหมดไปยังอุปกรณ์ หากอุปกรณ์ไม่เชื่อมต่ออีกเลย (เช่น มีการรีเซ็ตเป็นค่าเริ่มต้น) ข้อความจะหมดเวลาและถูกทิ้งออกจากพื้นที่เก็บข้อมูล FCM ระยะหมดเวลาเริ่มต้นคือ 4 สัปดาห์ เว้นแต่จะมีการตั้งค่า Flag time_to_live
วิธีดูข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับการนำส่งข้อความ
หากต้องการดูข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับการนำส่งข้อความบนแพลตฟอร์ม Android หรือ Apple โปรดดู หน้าแดชบอร์ดการรายงาน FCM ซึ่งจะบันทึกจำนวนข้อความที่ส่งและเปิดในอุปกรณ์ Apple และ Android รวมถึงข้อมูล "การแสดงผล" (การแจ้งเตือนที่ผู้ใช้เห็น) สําหรับแอป Android
สำหรับอุปกรณ์ Android ที่เปิดใช้การรับส่งข้อความกับช่องโดยตรง หากอุปกรณ์ไม่ได้เชื่อมต่อกับ FCM นานกว่า 1 เดือน FCM จะยังคงรับข้อความแต่ทิ้งข้อความนั้นทันที หากอุปกรณ์เชื่อมต่อภายใน 4 สัปดาห์นับจากข้อความข้อมูลล่าสุดที่คุณส่งไป ลูกค้าจะได้รับการเรียกกลับ onDeletedMessages() จากนั้นแอปจะจัดการสถานการณ์ได้อย่างเหมาะสม โดยปกติแล้วคือจะขอการซิงค์แบบเต็มจากเซิร์ฟเวอร์แอป
สุดท้าย เมื่อ FCM พยายามส่งข้อความไปยังอุปกรณ์และมีการถอนการติดตั้งแอป FCM จะทิ้งข้อความนั้นทันทีและทำให้โทเค็นการลงทะเบียนใช้งานไม่ได้ การพยายามส่งข้อความไปยังอุปกรณ์ดังกล่าวในอนาคตจะทำให้เกิดข้อผิดพลาด NotRegistered
การควบคุมและโควต้า
เป้าหมายของเราคือการส่งข้อความทุกข้อความที่ส่งผ่าน FCM เสมอ อย่างไรก็ตาม การส่งข้อความทุกข้อความอาจส่งผลให้ผู้ใช้ได้รับประสบการณ์โดยรวมที่ไม่ดี ในกรณีอื่นๆ เราต้องกำหนดขอบเขตเพื่อให้ FCM ให้บริการที่ปรับขนาดได้สำหรับผู้ส่งทุกคน ประเภทของขีดจํากัดและโควต้าที่อธิบายในส่วนนี้ช่วยให้เรารักษาสมดุลของปัจจัยสําคัญเหล่านี้ได้
การควบคุมการรับส่งข้อความขาลง
HTTP v1 API ได้เปิดตัวโควต้าต่อโปรเจ็กต์ต่อนาทีสำหรับการรับส่งข้อความดาวน์สตรีม โควต้าเริ่มต้นที่ 600,000 ข้อความต่อนาทีครอบคลุมนักพัฒนาแอปFCMกว่า 99% ในขณะเดียวกันก็ช่วยรักษาความเสถียรของระบบและลดผลกระทบจากโปรเจ็กต์ที่มีจำนวนข้อความสูง
รูปแบบการเข้าชมที่เพิ่มขึ้นอย่างรวดเร็วอาจทำให้เกิดข้อผิดพลาดเกี่ยวกับโควต้าที่เกิน ในกรณีที่ใช้โควต้าเกิน ระบบจะแสดงรหัสสถานะ HTTP 429 (QUOTA_EXCEEDED) จนกว่าโควต้าจะเต็มอีกครั้งในนาทีถัดไป ระบบอาจแสดงผลรหัสตอบกลับ 429 ในกรณีที่มีคำขอมากเกินไป เราขอแนะนำให้คุณจัดการรหัส 429 ตามคําแนะนําที่เผยแพร่
โปรดทราบว่า
- โควต้าดาวน์สตรีมจะวัดข้อความ ไม่ใช่คําขอ
- ระบบจะนับข้อผิดพลาดของไคลเอ็นต์ (รหัสสถานะ HTTP 400-499) (ยกเว้น 429)
- โดยโควต้าจะนับต่อนาที แต่จำนวนนาทีเหล่านี้จะไม่สอดคล้องกับเวลาตามนาฬิกา
โควต้าการตรวจสอบ
คุณดูโควต้า การใช้งาน และข้อผิดพลาดได้ใน Google Cloud Console โดยทำดังนี้
- ไปที่คอนโซล Google Cloud
- เลือกAPI และบริการ
- จากรายการตาราง ให้เลือก Firebase Cloud Messaging API
- เลือกโควต้าและขีดจำกัดของระบบ
หมายเหตุ: กราฟเหล่านี้ไม่ได้ปรับเวลาให้สอดคล้องกับนาทีโควต้าอย่างละเอียด ซึ่งหมายความว่าระบบอาจแสดงข้อผิดพลาด 429 เมื่อการเข้าชมดูเหมือนว่าต่ำกว่าโควต้า
การขอเพิ่มโควต้า
โปรดตรวจสอบสิ่งต่อไปนี้ก่อนขอเพิ่มโควต้า
- การใช้งานของคุณมีโควต้าอย่างน้อย 80% เป็นระยะเวลาติดต่อกันอย่างน้อย 5 นาทีต่อวัน
- คุณมีอัตราข้อผิดพลาดของไคลเอ็นต์น้อยกว่า 5% โดยเฉพาะในช่วงที่มีการเข้าชมสูงสุด
- คุณปฏิบัติตามแนวทางปฏิบัติแนะนำสำหรับการส่งข้อความในวงกว้าง
หากมีคุณสมบัติตรงตามเกณฑ์เหล่านี้ คุณสามารถส่งคำขอเพิ่มโควต้าได้สูงสุด 25% และ FCM จะพยายามอย่างเต็มที่เพื่อดำเนินการตามคำขอ (ไม่สามารถรับประกันว่าจะเพิ่มโควต้าได้)
หากต้องการโควต้าการรับส่งข้อความดาวน์สตรีมเพิ่มเนื่องจากการเปิดตัวที่กําลังจะเกิดขึ้นหรือเหตุการณ์ชั่วคราว โปรดขอโควต้าล่วงหน้าอย่างน้อย 15 วันเพื่อให้เรามีเวลาเพียงพอในการจัดการคําขอ สำหรับคำขอขนาดใหญ่ (>18 ล้านข้อความต่อนาที) คุณต้องแจ้งให้เราทราบล่วงหน้าอย่างน้อย 30 วัน คำขอเปิดตัวและกิจกรรมพิเศษจะยังคงขึ้นอยู่กับอัตราข้อผิดพลาดของไคลเอ็นต์และข้อกำหนดแนวทางปฏิบัติแนะนำ
โปรดดูคำถามที่พบบ่อยเกี่ยวกับโควต้า FCM ด้วย
จำนวนข้อความในหัวข้อสูงสุด
อัตราการเพิ่ม/นำการสมัครรับข้อมูลหัวข้อออกถูกจำกัดไว้ที่ 3,000 QPS ต่อโปรเจ็กต์
ดูอัตราการส่งข้อความได้ที่การควบคุมปริมาณการส่งต่อ
การควบคุม Fanout
การส่งต่อข้อความเป็นกระบวนการส่งข้อความไปยังอุปกรณ์หลายเครื่อง เช่น เมื่อคุณกําหนดเป้าหมายหัวข้อและกลุ่ม หรือเมื่อคุณใช้เครื่องมือเขียนการแจ้งเตือนเพื่อกําหนดกลุ่มเป้าหมายหรือกลุ่มผู้ใช้
การส่งต่อข้อความจะไม่เกิดขึ้นทันที ดังนั้นบางครั้งคุณจึงมีการส่งต่อหลายรายการพร้อมกัน เราจำกัดจำนวนการส่งต่อข้อความพร้อมกันต่อโปรเจ็กต์ไว้ที่ 1,000 รายการ หลังจากนั้น เราอาจปฏิเสธคำขอแยกย่อยเพิ่มเติมหรือเลื่อนการแยกย่อยคำขอจนกว่าการแยกย่อยที่อยู่ระหว่างดำเนินการจะเสร็จสมบูรณ์
อัตราแฟนเอาต์ที่ทำได้จริงจะขึ้นอยู่กับจํานวนโปรเจ็กต์ที่ขอแฟนเอาต์พร้อมกัน อัตราแฟนเอาต์ 10,000 QPS สำหรับโปรเจ็กต์แต่ละรายการนั้นไม่ใช่เรื่องแปลก แต่ตัวเลขดังกล่าวไม่ใช่การรับประกันและเป็นผลมาจากภาระทั้งหมดในระบบ โปรดทราบว่าความสามารถในการแยกสัญญาณที่มีอยู่จะแบ่งระหว่างโปรเจ็กต์ ไม่ใช่คำขอแยกสัญญาณ ดังนั้น หากโปรเจ็กต์ของคุณมีการแยกกลุ่ม 2 รายการที่อยู่ระหว่างดำเนินการ แต่ละกลุ่มจะเห็นอัตราการแยกกลุ่มเพียงครึ่งเดียวของอัตราการแยกกลุ่มที่มีอยู่ วิธีที่เราแนะนําเพื่อเพิ่มความเร็วสูงสุดให้กับการแยกย่อยคือให้ดำเนินการแยกย่อยที่ใช้งานอยู่เพียงรายการเดียวในแต่ละครั้ง
การควบคุมปริมาณข้อความแบบยุบได้
ดังที่อธิบายไว้ข้างต้น ข้อความแบบยุบได้คือการแจ้งเตือนที่ไม่มีเนื้อหาซึ่งออกแบบมาเพื่อยุบซ้อนกัน ในกรณีที่นักพัฒนาแอปส่งข้อความเดิมซ้ำๆ ไปยังแอปบ่อยเกินไป เราจะเลื่อนเวลา (จำกัด) ข้อความเพื่อลดผลกระทบต่อแบตเตอรี่ของผู้ใช้
ตัวอย่างเช่น หากคุณส่งคำขอซิงค์อีเมลใหม่จำนวนมากไปยังอุปกรณ์เครื่องเดียว เราอาจเลื่อนคำขอซิงค์อีเมลถัดไปออกไป 2-3 นาทีเพื่อให้อุปกรณ์ซิงค์ในอัตราเฉลี่ยที่ต่ำลง การจำกัดนี้ทำขึ้นเพื่อจำกัดผลกระทบต่อแบตเตอรี่ที่ผู้ใช้ได้รับอย่างเคร่งครัด
หาก Use Case ของคุณต้องใช้รูปแบบการส่งแบบระเบิดสูง ข้อความแบบไม่สามารถยุบได้อาจเป็นตัวเลือกที่เหมาะสม สำหรับข้อความดังกล่าว โปรดใส่เนื้อหาในข้อความดังกล่าวเพื่อลดต้นทุนแบตเตอรี่
เราจำกัดข้อความแบบยุบ/ขยายไว้ที่ 20 ข้อความต่อแอปต่ออุปกรณ์ โดยระบบจะเพิ่มข้อความใหม่ 1 ข้อความทุก 3 นาที
อัตราการส่งข้อความสูงสุดไปยังอุปกรณ์เครื่องเดียว
สำหรับ 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 ดำเนินการหลายขั้นตอนเพื่อให้การเชื่อมต่อการรับส่งข้อความ Push จากโทรศัพท์ไปยังเซิร์ฟเวอร์มีความน่าเชื่อถือและพร้อมใช้งานบ่อยที่สุด การใช้ 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 ของคุณ ซึ่งใช้ในคำขอไปยังFCMปลายทาง HTTP v1 ค่านี้จะอยู่ในแผงการตั้งค่าของ Firebaseคอนโซล |
โทเค็นการลงทะเบียน | สตริงโทเค็นที่ไม่ซ้ำกันซึ่งระบุอินสแตนซ์ของแอปไคลเอ็นต์แต่ละรายการ จำเป็นต้องใช้โทเค็นการลงทะเบียนสำหรับการรับส่งข้อความกลุ่มและอุปกรณ์เครื่องเดียว โปรดทราบว่าคุณต้องเก็บโทเค็นการลงทะเบียนไว้เป็นความลับ |
รหัสผู้ส่ง | ค่าตัวเลขที่ไม่ซ้ำกันซึ่งสร้างขึ้นเมื่อคุณสร้างโปรเจ็กต์ Firebase ซึ่งดูได้ในแท็บ Cloud Messaging ของคอนโซล Firebase แผงการตั้งค่า ระบบจะใช้รหัสผู้ส่งเพื่อระบุผู้ส่งแต่ละรายที่ส่งข้อความไปยังแอปไคลเอ็นต์ได้ |
โทเค็นเพื่อการเข้าถึง | โทเค็น OAuth 2.0 ที่มีอายุสั้นซึ่งให้สิทธิ์คำขอไปยัง HTTP v1 API โทเค็นนี้จะเชื่อมโยงกับบัญชีบริการที่เป็นของโปรเจ็กต์ Firebase หากต้องการสร้างและเปลี่ยนโทเค็นการเข้าถึง ให้ทําตามขั้นตอนที่อธิบายไว้ใน การให้สิทธิ์ส่งคําขอ |
คีย์เซิร์ฟเวอร์ (สำหรับโปรโตคอลเดิมที่ **เลิกใช้งานแล้ว**) | คีย์เซิร์ฟเวอร์ที่อนุญาตให้เซิร์ฟเวอร์แอปของคุณเข้าถึงบริการของ Google รวมถึงส่งข้อความผ่านโปรโตคอลเดิม Firebase Cloud Messaging ที่เลิกใช้งานแล้ว สำคัญ: อย่าใส่คีย์เซิร์ฟเวอร์ไว้ในโค้ดไคลเอ็นต์ นอกจากนี้ โปรดใช้เฉพาะคีย์เซิร์ฟเวอร์เพื่อให้สิทธิ์เซิร์ฟเวอร์แอป FCM ปฏิเสธคีย์แพลตฟอร์ม Android, Apple และเบราว์เซอร์ |