FCM 令牌是特定于应用程序还是设备?

Posted

技术标签:

【中文标题】FCM 令牌是特定于应用程序还是设备?【英文标题】:Are FCM tokens specific to an App or a Device? 【发布时间】:2020-06-29 12:00:58 【问题描述】:

我对 FCM 令牌是特定于设备还是设备上的特定应用程序感到困惑。在我读过的关于这个主题的大部分文档中,它说 FCM 令牌用于“针对特定设备”,但这是否意味着当使用该令牌时,设备上的每个应用程序都可以收到通知?还是只是最初请求令牌的应用程序?

【问题讨论】:

【参考方案1】:

它是应用程序(来自 firebase 配置的 uniq)和设备的令牌。 例如,如果您使用两个不同的 firebase 配置创建了 2 个应用,但您从同一设备请求令牌,则该服务将为您提供两个不同的令牌。

明确一点:当 Firebase 文档使用“设备”一词时,它通常表示“[在设备上] 的应用实例”。因此,以下文档:

注册设备以接收来自 FCM 的消息。客户端应用实例注册接收消息,获得唯一标识应用实例的注册令牌。

...应该更准确地说:

注册应用实例以接收来自 FCM 的消息。客户端应用实例注册接收消息,获取唯一标识应用实例的注册令牌。

这也适用于许多其他移动通知文档,包括 Microsoft 的 Notification Hubs 文档。

【讨论】:

好的,那么 Firebase 文档真的很混乱,那么?这是它的直接引用:Register devices to receive messages from FCM. An instance of a client app registers to receive messages, obtaining a registration token that uniquely identifies the app instance. 他们在一个句子中使用“设备”,然后在下一个句子中使用“客户端应用程序”,就好像它们可以互换一样!啊! 是的,也许不是最好的解释方式。我从同一设备甚至同一项目(但不同的“应用程序”)安装了很多使用 firebase FCM 的应用程序,并且它们具有不同的令牌。

以上是关于FCM 令牌是特定于应用程序还是设备?的主要内容,如果未能解决你的问题,请参考以下文章

通过 FCM 发送推送通知时何时使用 iOS 设备令牌?

无法获取设备的推送令牌。检查您的 FCM 配置是不是有效

处理 FCM 设备组的刷新令牌

Android FCM 推送日志

注册令牌不是有效的 FCM 注册令牌

使用 php 向 ios 设备发送带有 fcm 令牌的远程通知