【问题标题】:FCM push notification to all devices which will be filtered on client sideFCM 向所有将在客户端过滤的设备推送通知
【发布时间】:2018-03-15 09:51:53
【问题描述】:

好的,我知道这个问题听起来很愚蠢。我正在构建一个应用程序,其中有发布帖子的页面,用户可以订阅/取消订阅这些页面。

这里的目标是找到一种在发布新帖子时发送通知的方法,但仅限于订阅用户。我虽然可以通过在 Firebase 数据库上更新“帖子”引用时向我的应用程序上的所有设备发送推送通知来做到这一点,然后选择是否在用户订阅时显示此通知(在客户端)

这是个好主意吗?如果是,我该如何做到这一点?

【问题讨论】:

    标签: android firebase firebase-realtime-database firebase-cloud-messaging


    【解决方案1】:

    这是个好主意吗?

    是的,这个想法还不错。但是,在许多情况下,会在客户端显示过滤通知。

    如果是,我该怎么做?

    我希望您已经拥有使用 Firebase 身份验证或任何其他服务器端身份验证的登录或身份验证系统。当你有这个时,你可能已经考虑在用户在你的应用程序中注册并将其保存在你的 firebase 数据库中时向你的服务器或 firebase 发送一个推送注册 ID。

    现在是时候发送推送通知了,您计划将推送通知发送到所有已注册的设备,并且您希望过滤通知将显示或不显示在客户端。

    这可以通过在客户端保留一个标志来实现,例如SharedPreference 具有上一篇文章的 id 或标签。如果每个帖子都有一个增量 id,那么实现起来会容易得多。当用户启动您的应用程序时,它会从您的 firebase 数据库中提取帖子,就像我能想到的那样。只需将帖子的最新 ID 保存在您的 SharedPreference 中,当收到推送时,将推送通知随附的帖子 ID 与本地存储的最新 ID 匹配。

    如果通过推送通知收到的 id 大于存储在您的SharedPreference 中的 id,您将在系统托盘中显示通知,否则不会显示通知。

    希望对您有所帮助。

    【讨论】:

    • 这不是我的情况,但它确实给了我很多想法!
    • 很高兴知道我可以提供帮助。如果您发布有关您的问题的任何其他问题,请在此处告诉我。 :)
    【解决方案2】:

    如果您在数据库中维护订阅用户 FCM 令牌列表,则可以仅向订阅用户推送通知

    【讨论】:

      【解决方案3】:

      您的方法是正确的,您需要做的是为订阅该特定组/表时插入用户的所有页面维护不同的数据库表。

      因此,假设当一个人订阅了包含体育相关信息的页面时,您将他添加到该组。稍后,当您发送与“体育”相关的更新/通知时,您只会将这些推送通知发送到“体育”表中的用户令牌。

      这样,只有相关订阅者才会收到这些推送通知。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-07
        • 1970-01-01
        • 1970-01-01
        • 2019-07-21
        相关资源
        最近更新 更多