使用FCM向不同用户发送推送通知

问题描述:

我正在开发一个门铃项目,在该项目中,当客人来门铃响时,我要向用户发送推送通知,它应向用户发送推送通知(即所有者的房子)。我想在我的Android应用中使用Firebase Cloud Messaging使用FCM向不同用户发送推送通知

我们使用RaspberryPi作为硬件控制器。当有人按下了门铃就会触发通知其Android设备上使用FCM用户(这是不是一个值得关注的点。)

我的困惑是:

According to this post on SO, FCM会推送通知发送到预定义的'registration_ids'是我们在应用中提到的。 但在我的情况下,每个用户都有他们不同的注册ID。用户数量也不固定。

它可以是任意数量的用户。谁使用门铃将有自己的ID。

因此,这将是一个可能的方案,如:

  1. 想我没有提到的任何应用程序注册ID。 10位用户在家中安装了该门铃,而1位家中的某人按下了门铃按钮,FCM将向所有10位用户发送推送通知。原因是,所有从PlayStore安装应用的设备的注册ID都是相同的。

  2. 假设我在应用中提到了3个注册ID。因此,3个用户将同时获得相同的推送通知。

  3. 如果我没有错,如果我只输入1个注册ID,即使按下5个不同房子的门铃,也只有1个用户会收到通知,同一个用户将被通知5次。

  4. 如果我在服务器端声明一个特定的注册ID(即RaspberryPi),我必须定期添加新的注册ID,因为用户数量在我的应用中增加并经常更新。

那么我该如何解决这个问题呢?

直到现在我还没有开始开发这个应用程序,因为我对第一步本身感到困惑。

如果我在某处出错了,请引导我,因为我是推送通知或FCM的新手。我可能没有理解FCM的概念,这是可能的,但我不确定。如果这种解决方案不可能使用FCM,请给我一些其他的选择来实现这一点。

+0

让你想要同时抛出通知的人群 –

+0

并且每个设备都有唯一的令牌ID。 –

+1

我认为你对*注册id *(aka token)是什么感到困惑。 –

注册令牌对应于一个应用程序实例(请参阅我的回答here)。

在您的文章中,似乎您将注册ID混淆为应用程序中永久存在的内容,而不是。

每当用户安装您的应用程序,在第一次初始化时,它应该生成它自己的注册令牌,您必须将该令牌保存到您的应用服务器,确保您将其与相应的用户详细信息相关联。

为您的使用情况,您可以利用Topic Messaging,在那里你只需将用户订阅其相应门铃话题,每一个具体的门铃被触发时,您将消息发送给相应的主题。