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 คอนโซลมีการทดสอบ 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
ข้อความข้อมูล
คุณเลือกได้ว่าจะใช้เพย์โหลด FCM data
เพื่อใช้รูปแบบการเข้ารหัสที่คุณเลือกอย่างไร ตรวจสอบว่าคุณไม่ได้ใช้คำที่สงวนไว้ในคู่คีย์-ค่าที่กำหนดเอง
คำที่สงวนไว้ ได้แก่ "from", "notification",
"message_type" หรือคำใดก็ตามที่ขึ้นต้นด้วย "google" หรือ "gcm"
ตัวอย่างเช่น ข้อความในรูปแบบ JSON ต่อไปนี้อยู่ในแอป IM เดียวกันกับด้านบน
โดยข้อมูลจะห่อหุ้มอยู่ในคีย์ data
ทั่วไป และ
คาดว่าแอปไคลเอ็นต์จะตีความเนื้อหาได้
{ "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "data":{ "Nick" : "Mario", "body" : "great match!", "Room" : "PortugalVSDenmark" } } }
ตัวอย่างข้างต้นแสดงการใช้งานฟิลด์ระดับบนสุดหรือฟิลด์data
ทั่วไป
ซึ่งไคลเอ็นต์จะตีความในทุกแพลตฟอร์มที่ได้รับข้อความ
ในแต่ละแพลตฟอร์ม แอปไคลเอ็นต์จะได้รับเพย์โหลดข้อมูล
ในฟังก์ชันการเรียกกลับ
ข้อความแจ้งเตือนที่มีเพย์โหลดข้อมูลที่ไม่บังคับ
คุณสามารถส่งข้อความแจ้งที่มีเพย์โหลดคู่คีย์-ค่าที่กำหนดเอง (ไม่บังคับ) ได้ทั้งแบบเป็นโปรแกรมหรือผ่าน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 ระบบจะตั้งค่า Time-To-Live เป็นเวลาหมดอายุในหน่วยวินาที ส่วนใน Apple ระบบจะตั้งค่าเป็นวันที่หมดอายุ
ตัวอย่าง: ข้อความแจ้งเตือนที่มีตัวเลือกการนำส่งเฉพาะแพลตฟอร์ม
คำขอส่ง v1 ต่อไปนี้จะส่งชื่อการแจ้งเตือนและเนื้อหาทั่วไปไปยังทุกแพลตฟอร์ม แต่ยังส่งการลบล้างเฉพาะแพลตฟอร์มบางรายการด้วย โดยคำขอต้องมีลักษณะดังนี้
- ตั้งค่าเวลาในการใช้งาน (TTL) ที่ยาวนานสำหรับแพลตฟอร์ม Android และเว็บ ขณะเดียวกันก็ตั้งค่าลำดับความสำคัญของข้อความ APNs (แพลตฟอร์ม 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 ผ่าน FCM ของ collapse_key
, ใน Apple ผ่าน apns-collapse-id
และใน JavaScript/เว็บผ่าน Topic
ดูรายละเอียดได้ที่คำอธิบายในส่วนนี้และเอกสารอ้างอิงที่เกี่ยวข้อง
การตั้งค่าลำดับความสำคัญของข้อความ
คุณมี 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 ไม่ได้ ออกแบบมาสำหรับการแจ้งเตือนฉุกเฉินหรือกิจกรรมที่มีความเสี่ยงสูงอื่นๆ ซึ่งการใช้หรือ ความล้มเหลวของ API อาจส่งผลให้เกิดการเสียชีวิต การบาดเจ็บส่วนบุคคล หรือความเสียหายต่อสิ่งแวดล้อม (เช่น การปฏิบัติการของหน่วยงานพลังงานนิวเคลียร์ การควบคุมจราจรทางอากาศ หรือ ระบบช่วยชีวิต) การใช้งานดังกล่าวเป็นสิ่งต้องห้ามอย่างชัดแจ้งภายใต้ส่วนที่ 4 ก. 7 ของข้อกำหนดในการให้บริการ คุณมีหน้าที่รับผิดชอบแต่เพียงผู้เดียวในการจัดการการปฏิบัติตามข้อกำหนดของแอป และความเสียหายใดๆ ที่เกิดจากการไม่ปฏิบัติตามข้อกำหนด Google ให้บริการ 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 สัปดาห์
เว้นแต่จะตั้งค่าtime_to_live
หากต้องการดูข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับการนำส่งข้อความ ให้ทำดังนี้
หากต้องการข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับการนำส่งข้อความในแพลตฟอร์ม Android หรือ Apple โปรดดู FCMแดชบอร์ดการรายงาน ซึ่งบันทึก จำนวนข้อความที่ส่งและเปิดในอุปกรณ์ Apple และ Android พร้อมกับ ข้อมูลสำหรับ "การแสดงผล" (การแจ้งเตือนที่ผู้ใช้เห็น) สำหรับแอป Android
สำหรับอุปกรณ์ Android ที่เปิดใช้การรับส่งข้อความในช่องโดยตรง หากอุปกรณ์ไม่ได้เชื่อมต่อกับ FCM นานกว่า 1 เดือน FCM จะยังคงรับข้อความแต่จะทิ้งข้อความทันที หากอุปกรณ์เชื่อมต่อภายใน 4 สัปดาห์นับจากข้อความข้อมูลสุดท้ายที่คุณส่งไปยังอุปกรณ์ ไคลเอ็นต์จะได้รับการเรียกกลับ onDeletedMessages() จากนั้นแอปจะจัดการสถานการณ์ได้อย่างเหมาะสม โดยปกติแล้วจะขอซิงค์แบบเต็มจากเซิร์ฟเวอร์แอป
สุดท้ายนี้ เมื่อ FCM พยายามส่งข้อความไปยังอุปกรณ์และ
ถอนการติดตั้งแอป FCM จะทิ้งข้อความนั้นทันทีและ
ทำให้โทเค็นการลงทะเบียนไม่ถูกต้อง การพยายามส่งข้อความไปยังอุปกรณ์ดังกล่าวในอนาคตจะทำให้เกิดข้อผิดพลาด NotRegistered
ข้อมูลเข้าสู่ระบบ
คุณอาจต้องใช้ข้อมูลเข้าสู่ระบบต่อไปนี้จากโปรเจ็กต์ Firebase ทั้งนี้ขึ้นอยู่กับFCMฟีเจอร์ที่คุณใช้งาน
รหัสโปรเจ็กต์ | ตัวระบุที่ไม่ซ้ำกันสำหรับโปรเจ็กต์ Firebase ของคุณ ซึ่งใช้ในคำขอไปยังFCMปลายทาง HTTP v1 ค่านี้จะ อยู่ในแผง Firebase คอนโซลการตั้งค่า |
โทเค็นการลงทะเบียน | สตริงโทเค็นที่ไม่ซ้ำกันซึ่งระบุอินสแตนซ์ของแอปไคลเอ็นต์แต่ละรายการ ต้องใช้โทเค็นการลงทะเบียนสำหรับการรับส่งข้อความในอุปกรณ์เครื่องเดียวและกลุ่มอุปกรณ์ โปรดทราบว่า ต้องเก็บโทเค็นการลงทะเบียนไว้เป็นความลับ |
รหัสผู้ส่ง | ค่าตัวเลขที่ไม่ซ้ำกันซึ่งสร้างขึ้นเมื่อคุณสร้างโปรเจ็กต์ Firebase โดยจะอยู่ในแท็บ Cloud Messaging ของคอนโซล Firebase แผงการตั้งค่า ระบบจะใช้รหัสผู้ส่งเพื่อระบุผู้ส่งแต่ละราย ที่ส่งข้อความไปยังแอปไคลเอ็นต์ได้ |
โทเค็นเพื่อการเข้าถึง | โทเค็น OAuth 2.0 ที่มีอายุสั้นซึ่งให้สิทธิ์คำขอไปยัง HTTP v1 API โทเค็นนี้เชื่อมโยงกับบัญชีบริการที่เป็นของโปรเจ็กต์ Firebase ของคุณ หากต้องการสร้างและหมุนเวียนโทเค็นเพื่อการเข้าถึง ให้ทำตาม ขั้นตอนที่อธิบายไว้ใน ให้สิทธิ์คำขอส่ง |