如何使用Firebase推送消息传递取决于用户在设备上的帐户状态

时间:2017-08-14 09:29:50

标签: android firebase firebase-cloud-messaging firebase-notifications

我已阅读Firebase消息的所有文档,
但在我的用例中,我不知道应该如何实现它......

在我的用例中:

用户可以在多个设备上登录。
每当用户登录特定设备时,设备应在用户帐户收到任何事件时收到通知。

这可能有点复杂,但请看下面的三种情况:

enter image description here

每种情况:

  1. 用户A 设备1 处登录,因此设备1 会收到用户A 的通知。< / LI>
  2. 现在用户A 也会在设备2 处登录,因此 设备1和设备2都会收到用户A的通知。< / LI>
  3. 最后用户B 设备1 处登录,因此设备1 不再收到用户A ,相反,它现在会收到用户B 的通知。
  4. 用户和FirebaseInstance令牌的生命周期是不同的,所以我怎么能这样做? (我有一个后端服务器来存储注册ID。) 我脑子里有什么:

    对于 1 情况:只需获取设备令牌并保存到后端数据库。

    对于 2 情况:对于这种情况,我需要创建一个 RegistrationToken表,用于保存多个设备的令牌与User的关系,以便一个用户可以拥有多个注册令牌。

    对于 3 情况:如果数据库中存在令牌,请将关系更新为用户B 而不是用户A.

    但我认为这些解决方案将是一项艰苦的工作并且不常见,请告诉我你是如何解决这个问题的?

1 个答案:

答案 0 :(得分:1)

我建议的是,当您注册新用户时,请在数据库中创建一个名为token的coloum来存储firebase设备ID令牌 因此,当新用户注册时,您将获得分配给其用户名的新令牌 然后,每次登录和注销尝试都会更改firebase id令牌 这意味着当有人从任何设备登录时,其令牌将在数据库中更新,并且当用户注销时只将空值传递给它,因此您可以确保用户始终根据用户名获取正确的令牌

希望它有所帮助...