使用FCM

时间:2017-04-14 07:56:19

标签: android firebase push-notification firebase-cloud-messaging remote-server

我正在开设一个门铃项目,我想在客人来到门铃时向用户发送推送通知,它应该向用户发送推送通知(即房屋所有者)。我想在我的Android应用中使用 Firebase云消息传递

我们使用RaspberryPi作为硬件控制器。当有人按下他们的门铃时,它会触发用户在他们的Android设备上使用FCM的通知。(这不是一个值得关注的问题。)

我的困惑是:

According to this post on SO, FCM会将推送通知发送到预定义的“registration_ids”#39;我们在应用程序中提到过。 但就我而言,每个用户都会有不同的注册ID。此外,用户数量也不固定。

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

因此可能出现以下情况:

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

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

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

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

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

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

    如果我在某个地方出了问题,请指导我,因为我是Push Notifications或FCM的新手。我可能没有理解FCM的概念,这是可能的,但我不确定。如果使用FCM无法实现此解决方案,请为我提供一些其他选择。

1 个答案:

答案 0 :(得分:1)

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

在您的帖子中,您似乎将注册ID混淆为应用中永久性的内容,而不是。

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

对于您的用例,您可以使用Topic Messaging,只需将用户订阅到相应的门铃主题,每次触发特定门铃时,您都会发送给相应主题的消息。