firebase-cloud-messaging 入門

一個臭名昭著的常見問題是如何從裝置傳送通知,遺憾的是答案是:你做不到。需要觸發 FCM 才能傳送推送通知。這可以通過 3 種不同的方式完成:

  1. 直接在 Firebase Web 控制檯中
  2. 設定 Firebase 函式偵聽器,然後觸發 FCM
  3. 伺服器請求 FCM 傳送推送通知

推送通知是從 FCM 傳送的資訊有效負載。推送通知有 3 種型別:notificationdatanotification and data。此資訊可以表示為 JSON:

  {
    "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark",
      "icon" : "myicon"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
  }

上面的例子是第三種型別,notificationdata 的組合。這就是要求 FCM 傳送的內容。

  1. 控制檯可以傳送 notificationnotificationdata 但不僅僅是 data
  2. 功能和任何伺服器都可以傳送 3 種型別

notification 型別的重要性在於,允許應用程式接收預設*推送功能,*使其他團隊(如市場營銷)能夠通過簡單地使用 Web 控制檯來增加應用程式增長,而無需在將庫新增到專案之後進行進一步編碼。

請不要混淆推送通知,notification 型別和視覺通知,這最後對應一個 Android 類(通常是 NotificationCompat)。

推送的行為根據型別和應用程式位於前臺或後臺而不同。不在前景意味著,最小化或關閉。

  1. 如果應用程式不在前臺notification 將觸發預設的可視通知,此通知可在清單中自定義,請參閱文件 。如果應用程式位於前臺,我們必須自定義 onMessageReceived 方法中的行為。
  2. 必須始終定製 data 型別的行為。
  3. 如果應用程式**不在前臺,**則組合 notificationdata 將觸發預設視覺通知,並且當使用者單擊時,data 有效負載將可用。由於在單擊視覺通知時觸發了啟動器活動,因此你必須在該活動中逐字地獲取資料。如果應用程式處於活動狀態(在前臺),則必須自定義 onMessageReceived 方法內的行為,並立即訪問 data 有效負載。

要獲取資訊有效負載,你必須在 onMessageReceived 方法中執行此操作,唯一可用的引數是訊息:

  1. 要獲得 notification,你必須使用相應的方法獲得身體或頭銜
  2. 要獲得 data,你必須得到 remoteMessage.getData().get("yourKey")

新增每個非空驗證是一個好主意,將有幾種型別的通知到達高階應用程式。一個好的策略是驗證 notificationdata 是否都不為空。隨之而來的有用策略是在 data 通知中始終使用 type 鍵來進行一些流程控制。

要從 Firebase Web 控制檯傳送 data,必須開啟高階選項。

notification 鍵是有限的,並在文件中指出。任何型別的值都只能是 String

如果你在 Firebase 中找到任何文件時遇到問題,請轉到頁面底部並將語言更改為英語,其他語言的文件更薄