代码之家  ›  专栏  ›  技术社区  ›  Alexa289

如何使用FCM向Android、iOS或仅使用原始JSON的所有设备发送推送通知?

  •  0
  • Alexa289  · 技术社区  · 7 年前

    当我需要使用firebase将通知发送到特定设备时,这是JSON结构。那么,我应该如何修改它,将相同的通知发送到所有设备或选定的两个设备?

    { "notification": {
        "title": "Quiz App",
        "text": "Your Quiz has submitted Successfully."
      },
      "to" : "Unique Key"
    }
    

    在Android中,将推送通知发送到所有使用FireBase的设备的JSON结构是什么?

    0 回复  |  直到 7 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    如果您正在寻找一个有效负载参数来指定您打算为所有用户发送消息,不幸的是,它并不存在。

    通常,当向多个用户发送通知时,可以使用 registration_ids 参数而不是 to . 但是,它最多只允许有1000个注册令牌。如果您打算使用它,您可以批量请求每个注册令牌1000个,迭代您存储在应用服务器中的所有注册令牌。

    正如@looptheloop88所提到的,您可以使用firebase控制台向特定应用的所有用户发送消息,但是如果您计划通过自己的应用服务器发送消息,那么最方便的方法是使用 Topic Messaging . 根据 answer 在可能重复的帖子中,我评论了@diegiorgini:

    只能从Web控制台向所有电话发送消息,就像从FireBase Web控制台执行的操作一样。如果您需要来自API的此功能,可以提交功能请求: https://firebase.google.com/support/contact/bugs-features/

    另一种可能是让所有客户机通过 FirebaseMessaging.getInstance().subscribeToTopic(topicName)

    通过这种方式,您可以向整个主题发送消息,而无需手动收集注册ID。

    但是,请记住 Diagnostics for messages sent to Topics are not supported .

        2
  •  1
  •   Diogo Domanski    8 年前

    我有同样的需求,我通过设置 to 到 /topics/all 和 restricted_package_name 我的包裹名称:

    {
        "to": "/topics/all",
        "restricted_package_name": "<PACKAGE_NAME>",
        "notification": {
            "title": "<TITLE>",
            "body": "<BODY>",
            "click_action": "FCM_PLUGIN_ACTIVITY"
        }
    }
    

    我发送的每一条消息都是通过移动应用程序接收的,而不必通过编程方式订阅主题。

        3
  •  0
  •   looptheloop88    10 年前

    用 Firebase Device Group Messaging ,可以向在属于组的设备上运行的应用程序的多个实例发送单个消息。通常,“组”是指属于单个用户的一组不同的设备。组中的所有设备都共享一个公共通知密钥,这是FCM用于将消息扇出到组中所有设备的令牌。

    步骤和指南以及JSON有效负载都在FireBase文档中。请检查一下。

    另一方面,您可以通过 Firebase Notification console . 您只需撰写一条新消息并在目标部分中选择应用程序。