Môi trường máy chủ và FCM

Phía máy chủ của Firebase Cloud Messaging bao gồm hai thành phần:

  • Phần phụ trợ FCM do Google cung cấp.
  • Máy chủ ứng dụng hoặc môi trường máy chủ đáng tin cậy khác nơi logic máy chủ của bạn chạy, chẳng hạn như Cloud Functions cho Firebase hoặc các môi trường đám mây khác do Google quản lý.

Máy chủ ứng dụng hoặc môi trường máy chủ đáng tin cậy của bạn sẽ gửi yêu cầu thông báo đến phần phụ trợ FCM, sau đó định tuyến thông báo đến các ứng dụng khách đang chạy trên thiết bị của người dùng.

Bằng cách sử dụng giao thức máy chủ ứng dụng Firebase Admin SDK hoặc FCM, bạn có thể tạo yêu cầu thông báo và gửi yêu cầu đó đến các loại mục tiêu sau:

  • Tên chủ đề
  • Điều kiện
  • FCM mã thông báo đăng ký
  • Tên nhóm thiết bị (không dùng nữa, sẽ bị xoá vào ngày 29 tháng 9 năm 2027)

Bạn có thể gửi thông báo có tải trọng thông báo bao gồm các trường được xác định trước, tải trọng dữ liệu của các trường do người dùng xác định hoặc thông báo chứa cả hai loại tải trọng. Hãy xem phần Các loại thông báo để biết thêm thông tin.

Yêu cầu đối với môi trường máy chủ đáng tin cậy

Môi trường máy chủ ứng dụng của bạn phải đáp ứng các tiêu chí sau:

  • Có thể gửi yêu cầu thông báo có định dạng phù hợp đến phần phụ trợ FCM.
  • Có thể xử lý các yêu cầu và gửi lại bằng thuật toán thời gian đợi luỹ thừa.
  • Có thể lưu trữ an toàn thông tin xác thực của máy chủ và mã thông báo đăng ký của ứng dụng khách.

Thông tin xác thực bắt buộc cho dự án Firebase

Tuỳ thuộc vào tính năng FCM mà bạn triển khai, bạn có thể cần thông tin xác thực sau đây từ dự án Firebase:

Thông tin xác thực Mô tả
Mã dự án Giá trị nhận dạng riêng biệt cho dự án Firebase của bạn, được dùng trong các yêu cầu gửi đến điểm cuối HTTP FCM phiên bản 1. Giá trị này có trong ngăn Settings (Cài đặt) của Firebase console.
Mã đăng ký Một chuỗi mã thông báo duy nhất xác định từng phiên bản ứng dụng khách. Mã thông báo đăng ký là bắt buộc đối với tính năng nhắn tin cho một phiên bản ứng dụng và nhóm thiết bị. Xin lưu ý rằng bạn phải giữ bí mật mã thông báo đăng ký.
Mã nhận dạng người gửi Một giá trị số riêng biệt được tạo khi bạn tạo dự án Firebase, có trong thẻ Cloud Messaging của ngăn Cài đặt trong bảng điều khiển Firebase. Mã người gửi giống với số dự án. Mã nhận dạng người gửi được dùng để xác định từng người gửi có thể gửi thông báo đến ứng dụng khách.
Mã truy cập Mã thông báo OAuth 2.0 có thời hạn ngắn, cho phép các yêu cầu đến API HTTP phiên bản 1. Mã thông báo này được liên kết với một tài khoản dịch vụ thuộc dự án Firebase của bạn. Để tạo và xoay vòng mã truy cập, hãy làm theo các bước được mô tả trong phần Uỷ quyền gửi yêu cầu.

Chọn một máy chủ

Bạn cần quyết định cách tương tác với máy chủ FCM: sử dụng Firebase Admin SDK hoặc API HTTP v1 của FCM. Vì hỗ trợ nhiều ngôn ngữ lập trình phổ biến và có các phương thức thuận tiện để xử lý việc xác thực và uỷ quyền, nên Firebase Admin SDK là phương thức được đề xuất.

Sau đây là các lựa chọn để tương tác với máy chủ FCM:

Firebase Admin SDK

Firebase Admin SDK xử lý việc xác thực bằng phần phụ trợ và hỗ trợ gửi thông báo cũng như quản lý gói thuê bao theo chủ đề. Với Firebase Admin SDK, bạn có thể:

  • Gửi thông báo đến từng phiên bản ứng dụng
  • Gửi thông báo đến các chủ đề và câu lệnh điều kiện khớp với một hoặc nhiều chủ đề
  • Gửi thông báo đến các nhóm thiết bị
  • Đăng ký và huỷ đăng ký các phiên bản ứng dụng cho chủ đề
  • Tạo tải trọng thông báo phù hợp với nhiều nền tảng mục tiêu

Để thiết lập Firebase Admin SDK, hãy xem bài viết Thêm Firebase Admin SDK vào máy chủ của bạn. Nếu bạn đã có một dự án Firebase, hãy bắt đầu bằng cách Thêm SDK. Ngoài ra, hãy nhớ bật API Giải pháp gửi thông báo qua đám mây của Firebase (phiên bản 1) trong trang cài đặt Giải pháp gửi thông báo qua đám mây cho dự án của bạn. Sau đó, khi đã cài đặt Firebase Admin SDK, bạn có thể bắt đầu viết logic để tạo yêu cầu gửi.

API HTTP v1 của FCM

FCM cung cấp API HTTP phiên bản 1 của FCM cho những nhà phát triển muốn sử dụng giao thức máy chủ thô.

Để gửi thông báo, máy chủ ứng dụng sẽ gửi một yêu cầu POST có tiêu đề HTTP và nội dung HTTP bao gồm các cặp giá trị khoá JSON. Để biết thông tin chi tiết về các lựa chọn cho tiêu đề và nội dung, hãy xem bài viết Gửi thông báo bằng API HTTP phiên bản 1 của FCM.