จะส่งการแจ้งเตือนแบบพุชของ Firebase จากตัวอุปกรณ์ได้อย่างไร [ทำซ้ำ]

สวัสดี ฉันต้องการความช่วยเหลือสำหรับแอป Android ของฉัน ฉันทำงานกับการแจ้งเตือนแบบพุชของ Firebase และน่าเสียดายที่พบเพียงวิธีเดียวในการส่งการแจ้งเตือนแบบพุช - จากเว็บไซต์เอง

ฉันชอบสร้างฟังก์ชันที่คุณสามารถป้อนชื่อและเนื้อหาเพื่อส่งการแจ้งเตือนแบบพุชไปยังผู้ใช้แอปของฉันทุกคน

เป้าหมาย: หน้าจอผู้ดูแลระบบ ป้อนชื่อเรื่อง: นี่คือข้อความแก้ไขพร้อมชื่อเรื่อง ป้อนเนื้อหา: นี่คือข้อความแก้ไขพร้อมปุ่มส่งเนื้อหา - จะส่งการแจ้งเตือนไปยังผู้ใช้แอปทั้งหมด

มีวิธีทำเช่นนั้นไหม? ขอบคุณ!


comment
ไม่มีวิธีที่ปลอดภัยในการส่งข้อความไปยังอุปกรณ์ที่มีเพียง FCM จากตัวอุปกรณ์เอง การส่งข้อความไปยังอุปกรณ์นั้น คุณจะต้องระบุรหัสเซิร์ฟเวอร์ FCM ตามชื่อของมัน คีย์นี้ควรใช้ในสภาพแวดล้อมที่เชื่อถือได้เท่านั้น เช่น เครื่องพัฒนาของคุณ เซิร์ฟเวอร์ที่คุณควบคุม หรือฟังก์ชันคลาวด์ ขั้นตอนทั่วไปคือแอปของคุณเรียกใช้ฟังก์ชันคลาวด์ หรือเขียนไปยังฐานข้อมูลที่ทริกเกอร์ฟังก์ชันคลาวด์ จากนั้น Cloud Function จะตรวจสอบว่าเนื้อหาใช้ได้หรือไม่ และเรียกใช้ FCM API เพื่อส่งข้อความ   -  person Frank van Puffelen    schedule 09.03.2020
comment
@FrankvanPuffelen เหตุใดจึงไม่มี API ที่ปลอดภัยสำหรับมัน การใช้ Cloud Functions เพียงเพื่อสิ่งนั้นดูเหมือนจะเกินกำลังไปมาก...   -  person Pavlo Zin    schedule 09.03.2020
comment
หากคุณต้องการเพิ่มคุณสมบัตินั้น (ฉันอยากเห็นมันอย่างแน่นอน) วิธีที่ดีที่สุดที่คุณสามารถทำได้คือ ยื่นคำขอคุณลักษณะ   -  person Frank van Puffelen    schedule 09.03.2020


คำตอบ (1)


คุณสามารถส่งการแจ้งเตือนแบบพุชจากอุปกรณ์โดยใช้คำขอ POST ไปยัง URL นี้:

https://fcm.googleapis.com/fcm/send

คุณจะต้องระบุส่วนหัวเหล่านี้:

Authorization: key="Firebase server key"
Content-Type: application/json

และเนื้อหาคำขอพร้อมข้อความแจ้งเตือนและข้อมูลเพิ่มเติมอื่น ๆ :

{
  "to": "/topics/topic_name",
  "data": {
    "title": "Notification title",
     "message": "Notification message",
     "key1" : "value1",
     "key2" : "value2" //additional data you want to pass
  }
}

คุณสามารถดูข้อมูลเพิ่มเติมได้ใน บทความขนาดกลางนี้

person Pavlo Zin    schedule 09.03.2020
comment
การดำเนินการนี้จากอุปกรณ์หมายความว่าคุณได้รวมคีย์เซิร์ฟเวอร์ FCM ลงในแอปที่คุณส่งให้กับผู้ใช้ของคุณ นั่นเป็นความเสี่ยงด้านความปลอดภัย เนื่องจากผู้ประสงค์ร้ายที่ได้รับแอปของคุณจะได้รับคีย์นั้นและใช้เพื่อส่งข้อความใดๆ ที่พวกเขาต้องการไปยังผู้ใช้แอปทุกคน - person Frank van Puffelen; 09.03.2020