ด้วย FCM คุณสามารถส่งข้อความ 2 ประเภทไปยังแอปไคลเอ็นต์ได้
- ข้อความแจ้งเตือนซึ่งคล้ายกับ "ข้อความที่แสดง" จะได้รับการจัดการโดย FCM SDK โดยอัตโนมัติ
- ข้อความข้อมูลซึ่งได้รับการจัดการโดยแอปไคลเอ็นต์
ข้อความแจ้งเตือนมีชุดคีย์ที่กำหนดไว้ล่วงหน้าซึ่งผู้ใช้มองเห็นได้ และอาจมีเพย์โหลดข้อมูลที่ไม่บังคับ ในทางตรงกันข้าม ข้อความข้อมูลจะมีเพียงคู่คีย์-ค่าที่กำหนดเองโดยผู้ใช้เท่านั้น เพย์โหลดสูงสุดสำหรับข้อความทั้ง 2 ประเภทคือ 4096 ไบต์ ยกเว้นเมื่อส่งข้อความจากคอนโซลFirebase ซึ่ง กำหนดขีดจำกัดไว้ที่ 1,000 อักขระ
| สถานการณ์จำลองการใช้งาน | วิธีส่ง | |
|---|---|---|
| ข้อความแจ้งเตือน | FCM SDK จะแสดงข้อความไปยังอุปกรณ์ของผู้ใช้ปลายทาง ในนามของแอปไคลเอ็นต์เมื่อแอปทำงานอยู่เบื้องหลัง แต่หากแอปทำงานอยู่เบื้องหน้าเมื่อได้รับการแจ้งเตือน โค้ดของแอปจะเป็นตัวกำหนดลักษณะการทำงาน |
|
| ข้อความข้อมูล | แอปไคลเอ็นต์มีหน้าที่รับผิดชอบในการประมวลผลข้อความข้อมูล ข้อความข้อมูล มีเพียงคู่คีย์-ค่าที่กำหนดเองโดยไม่มีชื่อคีย์ที่สงวนไว้ (ดูด้านล่าง) | ในสภาพแวดล้อมที่เชื่อถือได้ เช่น
Cloud Functions
หรือเซิร์ฟเวอร์แอป ให้ใช้
Firebase Admin SDK หรือ
HTTP v1 API
ในคำขอส่ง ให้ตั้งค่า data
คีย์
|
คุณสามารถใช้ข้อความแจ้งเตือนได้เมื่อต้องการให้ FCM SDK จัดการ การแสดงการแจ้งเตือนโดยอัตโนมัติเมื่อแอปทำงานอยู่เบื้องหลัง FCM สามารถส่งข้อความแจ้งเตือนพร้อมเพย์โหลดข้อมูลที่ไม่บังคับ ในกรณีเช่นนี้ FCM จะแสดงเพย์โหลดการแจ้งเตือน และ แอปไคลเอ็นต์จะจัดการเพย์โหลดข้อมูล
คุณสามารถใช้ข้อความข้อมูลได้เมื่อต้องการประมวลผลข้อความด้วยโค้ดแอปไคลเอ็นต์ของคุณเอง
ข้อความแจ้งเตือน
คุณสามารถส่งข้อความแจ้งเตือนได้โดยใช้ Firebaseคอนโซล Firebase Admin SDK หรือ FCM HTTP v1 API คอนโซล Firebase มีการทดสอบ A/B ที่อิงตาม Analytics เพื่อช่วยคุณ ปรับแต่งและปรับปรุงข้อความแจ้งเตือน
หากต้องการส่งข้อความแจ้งเตือนโดยใช้ Firebase Admin SDK หรือ FCM
HTTP v1 API ให้ตั้งค่าคีย์ notification ด้วยชุดตัวเลือกคีย์-ค่าที่กำหนดไว้ล่วงหน้า
ของข้อความแจ้งเตือน คุณสามารถใช้ตัวอย่างต่อไปนี้เพื่อจัดรูปแบบข้อความแจ้งเตือนในแอป IM
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
ระบบจะส่งข้อความแจ้งเตือนไปยังถาดการแจ้งเตือนเมื่อแอปอยู่เบื้องหลัง สำหรับแอปที่อยู่เบื้องหน้า ฟังก์ชันเรียกกลับจะเป็นตัวจัดการข้อความ
คุณสามารถใช้เอกสารอ้างอิงออบเจ็กต์การแจ้งเตือน FCM HTTP v1 API เพื่อดูรายการคีย์ที่กำหนดไว้ล่วงหน้าทั้งหมดที่ใช้สร้างข้อความแจ้งเตือนได้
ข้อความข้อมูล
คุณเป็นผู้กำหนดวิธีใช้ data เพย์โหลด FCM เพื่อใช้รูปแบบการเข้ารหัสที่ต้องการ ตรวจสอบว่าคุณไม่ได้ใช้คำที่สงวนไว้ในคู่คีย์-ค่าที่กำหนดเอง คำที่สงวนไว้ ได้แก่ from, message_type หรือ
คำใดก็ตามที่ขึ้นต้นด้วย google., gcm. หรือ gcm.notification.
ตัวอย่างต่อไปนี้แสดงการใช้งานฟิลด์ข้อมูลระดับบนสุดหรือฟิลด์ข้อมูลทั่วไป ซึ่งไคลเอ็นต์ในทุกแพลตฟอร์มที่ได้รับข้อความจะเป็นผู้ตีความ ในแต่ละแพลตฟอร์ม แอปไคลเอ็นต์จะได้รับเพย์โหลดข้อมูลในฟังก์ชัน Callback
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
ข้อความแจ้งเตือนพร้อมเพย์โหลดข้อมูลที่ไม่บังคับ
คุณสามารถส่งข้อความแจ้งเตือนที่มีเพย์โหลดที่ไม่บังคับของคู่คีย์-ค่าที่กำหนดเอง โดยใช้โปรแกรมหรือคอนโซลFirebase ใน เครื่องมือสร้างการแจ้งเตือน, ให้ใช้ช่อง ข้อมูลที่กำหนดเอง ใน ตัวเลือกขั้นสูง
ลักษณะการทำงานของแอปเมื่อได้รับข้อความที่มีทั้งเพย์โหลดการแจ้งเตือนและเพย์โหลดข้อมูล จะขึ้นอยู่กับว่าแอปอยู่เบื้องหลังหรือเบื้องหน้า ซึ่งโดยพื้นฐานแล้วคือขึ้นอยู่กับว่าแอปทำงานอยู่หรือไม่ในขณะที่ได้รับข้อความ
- เมื่ออยู่เบื้องหลัง แอปจะได้รับเพย์โหลดการแจ้งเตือนใน ถาดการแจ้งเตือน และจะจัดการเพย์โหลดข้อมูลก็ต่อเมื่อผู้ใช้ แตะการแจ้งเตือน
- เมื่ออยู่เบื้องหน้า แอปจะได้รับออบเจ็กต์ข้อความ ที่มีเพย์โหลดทั้ง 2 รายการ
ต่อไปนี้คือข้อความในรูปแบบ JSON ที่มีทั้งคีย์
notification และคีย์ data
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}