拥有多个设备的用户存在 Google FCM 问题

问题描述 投票:0回答:1

我在 Google Firebase 云消息传递和发送通知方面遇到一些奇怪的问题:

  • Android 应用程序正在通过 FCM 接收通知。它安装在一名用户的两台设备(智能手机和平板电脑)上。他在两台设备上使用相同的 Google 帐户。

  • 两个应用程序安装都有其独特的 FCM 令牌。

我的问题:我无法成功向两个 FCM 令牌发送通知! 仅发送到一个令牌成功,发送到其他令牌返回 404“未注册”。

应用程序中的 getToken() 始终返回相同的令牌。 哪个设备/令牌可以接收通知会不时发生变化,要么是设备 1,要么是设备 2。

我进一步调查了该行为,可以看到以下内容:

    最近安装/更新应用程序的设备可以接收通知,发送到其他设备的令牌返回 404 未注册。
因此更新一台设备似乎会使另一台设备上的令牌失效。 当用户在第二个设备上更新应用程序时,其令牌将再次有效,但这会使第一个设备的令牌失效。等等等等。

我的问题:

根据 Google 文档,返回“404 未注册”的令牌将永远不再有效?我可以看到不同的行为?!

为什么我无法向 Android 应用程序中 getToken() 返回的令牌发送通知?

Google 帐户中的多个设备之间是否存在 FCM 连接?

有人对这个话题有一些想法吗?

firebase-cloud-messaging token http-status-code-404
1个回答
0
投票
当然,这是您提供的文本的更清晰版本:

我遇到了同样的问题,解决方法如下:

每当用户从任何设备登录时,我都会检索他们的 FCM(Firebase 云消息传递)令牌并将其存储在 Firebase 中名为“fcmTokens”的集合中。我使用用户的电子邮件或 UID 作为标识符来管理我应该向谁发送通知。我为每个用户存储多个 FCM 令牌,并使用循环向一个人的所有设备发送通知。

例如: 在我的 firebase 中,我像这样存储了 fcm 令牌

fcmTokens (collection) - UID/Email (document) - fcm token 1 (field) - fcm token 2 (field)
这就是我保存多个 FCM 令牌,然后使用循环检索特定用户的令牌并向每个令牌发送通知的方式。

提示: 当用户从任何设备注销时,我会在注销功能中删除该设备的 FCM 令牌。

© www.soinside.com 2019 - 2024. All rights reserved.