【问题标题】:How to send notifications to one of two apps in the same project at firebase如何向firebase的同一项目中的两个应用程序之一发送通知
【发布时间】:2017-08-10 08:44:08
【问题描述】:

我们在 Firebase 的同一个项目中拥有多个应用,例如 Master、Develop、testing。

并且可以肯定他们每个人都有不同的用户,我们希望发送到一个应用程序而不是到达其他应用程序,因为它们都有相同的主题如何解决这个问题?

【问题讨论】:

  • 嗯,这取决于“用户数据在哪里”?。
  • 我使用 firebase 进行通知而不是其他任何东西,所以它将如何依赖于数据?
  • 如果您仅使用 firebase 进行通知,那么您可以指定哪个应用程序将接收通知或哪个用户将接收它,通过在后端处理此问题,“我假设有一个数据库用于每个应用程序”。
  • 不建议在一个项目中拥有多个代表不同环境的应用。建议每个环境有不同的项目。
  • 是的,每个人都有数据库,但他们有相同的 firebase 项目,所以在我们不使用我们使用已经创建的主题的令牌时如何区分它们

标签: android firebase push-notification


【解决方案1】:

您可以通过附加到通知的给定标识符过滤每个应用程序中的通知。

【讨论】:

    【解决方案2】:

    假设您目前有应用程序:A、B、C 全部注册到:

    • A:注册到 FUN 主题
    • B:注册到 FUN 主题
    • C: 注册到 FUN 主题

    您需要做的就是将它们单独注册到另一个主题以识别它们,如下所示:

    • A:注册到 FUN 主题和 APPA 主题
    • B:注册到 FUN 主题和 APPB 主题
    • C:注册到 FUN 主题和 APPC 主题

    现在,您可以将要发送的通知定位为一个条件,使通知专门针对您想要的任何内容,以下示例将通知定位到订阅主题的任何人:FUN 和 APPB:

    https://fcm.googleapis.com/fcm/send
    Content-Type:application/json
    Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
    {
      "condition": "'FUN' in topics && 'APPB' in topics",
      "data": {
        "message": "This is a Firebase Cloud Messaging Topic Message!",
       }
    }
    

    更多信息请见Firebase documentation page

    【讨论】:

    • 如果我们使用细分而不是主题,我们如何区分......有什么想法吗??
    【解决方案3】:

    你可以使用restricted_package_name参数(如果你的master、develop和test有不同的包名)按照包名过滤receiver。

    突出@Doug Stevenson 的评论。不建议将这三个环境放在一个项目中

    【讨论】:

    • 您能否提供一个示例,以便我们了解如何使用此参数?
    【解决方案4】:

    经过大量搜索后,我没有从 firebase 方面得到答案来区分 2 个应用程序 所以我只是在后台消息服务中设置了一个条件,并知道应用程序是开发版还是主版,然后推送通知是否是我的正确版本

    【讨论】:

      猜你喜欢
      • 2021-09-16
      • 1970-01-01
      • 2018-02-26
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 2017-06-26
      相关资源
      最近更新 更多