Các loại thông báo của Giải pháp gửi thông báo qua đám mây của Firebase

Với FCM, bạn có thể gửi hai loại thông báo đến các ứng dụng khách:

  • Thông báo, tương tự như "thông báo hiển thị", được FCM SDK tự động xử lý.
  • Thông báo dữ liệu do ứng dụng khách xử lý.

Thông báo chứa một tập hợp các khoá được xác định trước mà người dùng có thể nhìn thấy và có thể chứa một tải trọng dữ liệu không bắt buộc. Ngược lại, thông báo dữ liệu chỉ chứa các cặp khoá-giá trị tuỳ chỉnh do người dùng xác định. Tải trọng tối đa cho cả hai loại thông báo là 4096 byte, ngoại trừ khi gửi thông báo từ Firebase bảng điều khiển, nơi áp dụng giới hạn 1000 ký tự.

Trường hợp sử dụng Cách gửi
Thông báo FCM SDK hiển thị thông báo cho các thiết bị của người dùng cuối thay mặt cho ứng dụng khách khi ứng dụng đang chạy trong nền. Nếu không, nếu ứng dụng đang chạy ở nền trước khi nhận được thông báo, thì mã của ứng dụng sẽ xác định hành vi.
  1. Trong một môi trường đáng tin cậy như Cloud Functions hoặc máy chủ ứng dụng, hãy sử dụng Firebase Admin SDK hoặc API HTTP v1. Đặt khoá notification. Có thể có tải trọng dữ liệu không bắt buộc. Luôn có thể thu gọn.

    Xem một số ví dụ về thông báo hiển thị và tải trọng yêu cầu gửi.

  2. Sử dụng Trình soạn thông báo: Nhập Văn bản thông báo, Tiêu đề, v.v. rồi gửi. Thêm tải trọng dữ liệu không bắt buộc bằng cách cung cấp Dữ liệu tuỳ chỉnh.
Thông báo dữ liệu Ứng dụng khách chịu trách nhiệm xử lý thông báo dữ liệu. Thông báo dữ liệu chỉ có các cặp khoá-giá trị tuỳ chỉnh mà không có tên khoá dành riêng (xem bên dưới). Trong một môi trường đáng tin cậy như Cloud Functions hoặc máy chủ ứng dụng, hãy sử dụng Firebase Admin SDK hoặc API HTTP v1. Trong yêu cầu gửi, hãy đặt data khoá.

Bạn có thể sử dụng thông báo khi muốn SDK FCM tự động xử lý việc hiển thị thông báo khi ứng dụng đang chạy trong nền. FCM có thể gửi một thông báo có tải trọng dữ liệu không bắt buộc. Trong những trường hợp như vậy, FCM sẽ hiển thị tải trọng thông báo và ứng dụng khách sẽ xử lý tải trọng dữ liệu.

Bạn có thể sử dụng thông báo dữ liệu khi muốn xử lý thông báo bằng mã ứng dụng khách của riêng mình.

Thông báo

Bạn có thể gửi thông báo bằng Firebasebảng điều khiển, Firebase Admin SDK hoặc API HTTP v1 của FCM. Bảng điều khiển Firebase cung cấp tính năng thử nghiệm A/B dựa trên dữ liệu phân tích để giúp bạn tinh chỉnh và cải thiện thông báo.

Để gửi thông báo bằng Firebase Admin SDK hoặc FCM API HTTP v1, hãy đặt khoá notification với tập hợp các lựa chọn khoá-giá trị được xác định trước của thông báo. Bạn có thể sử dụng ví dụ sau để định dạng thông báo trong một ứng dụng nhắn tin tức thời

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    }
  }
}

Thông báo được gửi đến khay thông báo khi ứng dụng đang chạy trong nền. Đối với các ứng dụng chạy ở nền trước, thông báo được xử lý bằng một hàm gọi lại.

Bạn có thể sử dụng tài liệu tham khảo về đối tượng thông báo API HTTP v1 của FCM để xem danh sách đầy đủ các khoá được xác định trước có sẵn để tạo thông báo.

Thông báo dữ liệu

Bạn có thể tự quyết định cách sử dụng tải trọng data của FCM để triển khai lược đồ mã hoá mà bạn chọn. Đảm bảo rằng bạn không sử dụng bất kỳ từ dành riêng nào trong các cặp khoá-giá trị tuỳ chỉnh. Các từ dành riêng bao gồm from, message_type hoặc bất kỳ từ nào bắt đầu bằng google., gcm. hoặc gcm.notification..

Ví dụ sau đây cho thấy cách sử dụng trường dữ liệu cấp cao nhất hoặc trường dữ liệu chung, được các ứng dụng khách diễn giải trên tất cả các nền tảng nhận được thông báo. Trên mỗi nền tảng, ứng dụng khách sẽ nhận được tải trọng dữ liệu trong một hàm callback

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    }
  }
}

Thông báo có tải trọng dữ liệu không bắt buộc

Bạn có thể gửi thông báo có chứa tải trọng không bắt buộc của các cặp khoá-giá trị tuỳ chỉnh theo phương thức lập trình hoặc bằng bảng điều khiển Firebase. Trong Trình soạn thông báo, hãy sử dụng các trường Dữ liệu tuỳ chỉnh trong Tuỳ chọn nâng cao.

Hành vi của ứng dụng khi nhận được thông báo bao gồm cả tải trọng thông báo và tải trọng dữ liệu phụ thuộc vào việc ứng dụng đang chạy trong nền hay nền trước – về cơ bản là liệu ứng dụng có đang hoạt động tại thời điểm nhận hay không.

  • Khi chạy trong nền, ứng dụng sẽ nhận được tải trọng thông báo trong khay thông báo và chỉ xử lý tải trọng dữ liệu khi người dùng nhấn vào thông báo.
  • Khi chạy ở nền trước, ứng dụng của bạn sẽ nhận được một đối tượng thông báo có cả hai tải trọng.

Dưới đây là một thông báo ở định dạng JSON chứa cả khoá notification và khoá data:

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
  }
}