好的,我知道这个问题可能听起来很愚蠢。我正在构建一个应用程序,其中有发布帖子的页面,用户可以订阅/取消订阅这些页面。
此处的目标是找到一种方法,以便在发布新帖子时发送通知,但仅限于订阅用户。我可以通过在Firebase数据库上更新“帖子”参考时向我的应用程序上的所有设备发送推送通知来执行此操作,然后选择是否显示此通知(如果用户已订阅)(在客户端) )
这是个好主意吗?如果是的话,我该如何实现呢?
答案 0 :(得分:2)
这是个好主意吗?
是的,这个想法并不坏。但是,在许多情况下,在客户端显示过滤通知。
如果是的话,我该如何实现呢?
我希望您已经拥有使用Firebase身份验证或任何其他服务器端身份验证的登录或身份验证系统。如果有了这个,当用户在应用程序中注册并将其保存在firebase数据库中时,您可能已经考虑过向服务器或firebase发送推送注册ID。
现在,当发送推送通知的时候,您计划将推送通知发送到所有已注册的设备,并且您希望过滤通知将被显示,也不会显示在客户端。
这可以通过在客户端保留一个标志来实现,例如具有最后一个帖子的id或标签的SharedPreference
。如果每个帖子都有增量ID,那么实现起来会容易得多。当用户启动您的应用程序时,它会根据我的想法从您的firebase数据库中提取帖子。只需在SharedPreference
中保存帖子的最新ID,并在收到推送时,将推送通知附带的帖子的ID与本地存储的最新ID匹配。
如果通过推送通知收到的ID大于SharedPreference
中存储的ID,您将在系统托盘中显示通知,否则通知将不会显示。
希望有所帮助。
答案 1 :(得分:1)
如果要维护数据库中订阅用户的FCM令牌列表,则可以仅向订阅用户推送通知
答案 2 :(得分:1)
您的方法是正确的,您需要做的是为订阅该特定组/表时插入用户的所有页面维护不同的数据库表。
因此,我们假设当一个人订阅包含体育信息的页面时,您将他添加到该组。稍后,当您发送与“体育”相关的更新/通知时您只需将这些推送通知发送到“体育”中的用户令牌即可。表
通过这种方式,只有相关订阅者才会收到这些推送通知。