将 Firebase Cloud Messaging (FCM) 与 chrome.gcm 搭配使用

您可以使用 chrome.gcm 向最终用户发送和接收消息。由于它基于 Firebase Cloud Messaging (FCM) 构建,因此依赖于您需要设置的外部服务。该方法将引导您完成在扩展程序中正常运行的所有必要步骤。

虽然 chrome.gcm 仍受支持,但它是在推送标准早十多年前创建的。通常情况下,最佳做法始终是使用 Web 标准,而不是特定于扩展程序的 API。除非您确实需要使用 chrome.gcm,否则我们建议您使用推送

前提条件

要使用 chrome.gcm,您需要设置一个 Firebase 帐号。

Firebase.com 首页。
Firebase.com 首页

创建帐号后,您需要打开 Firebase 控制台,选择要使用的现有项目,或者为扩展程序创建一个新项目。

Firebase 控制台上项目列表的屏幕截图。
Firebase 控制台上的项目列表

继续前往 Cloud Messaging 的设置页面

Firebase Cloud Messaging 设置页面的屏幕截图。
Firebase Cloud Messaging 设置页面

如果此项目已有云消息传递账号,您需要复制列出的数字发送者 ID。

如果您没有启用 Cloud Messaging,则需要为 Google Cloud 内的项目启用 Firebase Cloud Messaging API。在下图中,您可以看到 Firebase 设置中的直接指向此页面的链接。

用于在 Google Cloud 中启用 Firebase Messaging API 的链接位置的屏幕截图。
在 Firebase 中打开 Google Cloud 设置链接

启用后,返回 Cloud Messaging 的设置页面,并复制发送者 ID。

配置 chrome.gcm

现在您已从 Firebase 获得了发件人 ID,接下来可以配置扩展程序以监听消息。首先,请确保您已将 gcm 权限添加到扩展程序的 manifest.json

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

您现在可以访问 chrome.gcm API 了。您可以通过调用 chrome.gcm.register 进行注册,以监听推送消息。

监听消息

扩展程序注册您的发送者 ID 后,您需要添加代码来处理收到的消息。

不使用 Firebase 的 Firebase

虽然 chrome.gcm 始终通过 Firebase 发送,但 Firebase 可配置为充当外部推送消息传递供应商的代理。通常,供应商会明确列出对 Chrome 扩展程序的支持,但是任何支持 Firebase 旧版推送通知的供应商应该可以正常使用。如果您的提供商列出了对 Firebase 旧版推送通知的支持,不妨试一试。如果您遇到问题,提供程序支持团队应能够说明将会实施的任何限制。

关于频道和主题

chrome.gcm 使用的是旧版 Firebase Messaging API。这一点很重要,因为旧版 API 不支持消息通道。推送的每条消息都会发送到每个客户端。如果用户的扩展程序仅对部分消息感兴趣,您需要自行进行过滤。

虽然 Firebase 最初是免费帐号,但如果您的用量超过一定阈值,我们才会向您收取相应费用。如果您打算向特定群组发送消息,那么客户端过滤最终所产生的费用可能会超过应有的费用。如需解决此问题,您可以创建多个项目来复制单独的渠道(一个项目,每个渠道对应一个发送者 ID)。任何给定的扩展程序都可以注册多个发送者 ID,最多 100 个。

或者,如果您需要渠道支持,或者希望在不借助 Firebase 的情况下使用推送通知,则可以使用 Push API