搭配使用 Firebase 雲端通訊 (FCM) 與 browser.gcm

你可以使用 browser.gcm 傳送及接收訊息。由於這項功能是以 Firebase 雲端通訊 (FCM) 為基礎建構而成,因此需要設定外部服務。本操作說明會逐步說明所有必要步驟,讓擴充功能正常運作。

雖然 browser.gcm 仍受支援,但這是十多年前在 Push 標準推出前建立的。一般來說,建議一律使用網路標準,而非擴充功能專屬的 API。除非有特定需求,否則建議使用 Push,而非 browser.gcm。

必要條件

如要使用 browser.gcm,請先設定 Firebase 帳戶。

Firebase.com 首頁。
Firebase.com 首頁

建立帳戶後,請開啟 Firebase 控制台,然後選取要使用的現有專案,或為擴充功能建立新專案。

螢幕截圖:Firebase 控制台上的專案清單。
Firebase 控制台上的專案清單

繼續前往 Cloud Messaging 的設定頁面。

Firebase 雲端通訊設定頁面的螢幕截圖。
Firebase 雲端通訊設定頁面

如果這個專案已有雲端訊息帳戶,請複製列出的數值型傳送者 ID。

如果未啟用雲端通訊功能,您需要在 Google Cloud 中為專案啟用 Firebase 雲端通訊 API。下圖顯示 Firebase 設定頁面上的連結,可直接前往這個頁面。

螢幕截圖:在 Google Cloud 中啟用 Firebase Messaging API 的連結位置。
在 Firebase 中開啟 Google Cloud 設定連結

啟用後,請返回 Cloud Messaging 的設定頁面,然後複製傳送者 ID。

設定 browser.gcm

取得 Firebase 傳送者 ID 後,即可設定擴充功能來監聽訊息。首先,請確認您已在擴充功能的 manifest.json 中新增 gcm 權限。

  {
    "manifest_version": 3,
    ...
    "permissions": ["gcm"]

您現在可以使用 browser.gcm API 了。您可以呼叫 browser.gcm.register,註冊接聽推播訊息。

監聽訊息

擴充功能註冊寄件者 ID 後,您需要新增程式碼來處理傳入的訊息。

沒有 Firebase 的 Firebase

雖然 browser.gcm一律會經過 Firebase,但您可以將 Firebase 設為外部推播訊息供應商的 Proxy。通常供應商會明確列出 Chrome 擴充功能支援,但任何支援 Firebase 舊版推播通知的供應商應該都能運作。如果供應商列出支援 Firebase 舊版推播通知,請試試看。如有問題,供應商支援團隊應能說明任何限制。

頻道和主題

browser.gcm 使用的是舊版 Firebase Messaging API。這項異動非常重要,因為舊版 API不支援訊息管道。系統會將推送的每則訊息傳送給所有用戶端。如果使用者擴充功能只對部分訊息感興趣,您必須自行篩選。

Firebase 帳戶一開始是免費的,但一旦超出特定用量門檻,就會開始收費。如果您打算傳送訊息給特定群組,用戶端篩選的費用可能會超出合理範圍。如要解決這個問題,可以建立多個專案來複製個別管道 (每個管道各有一個專案和傳送者 ID)。任何擴充功能最多可註冊 100 個傳送者 ID。

或者,如果您需要管道支援,或想使用推播通知,但不想透過 Firebase,可以使用 Push API。