【问题标题】:FCM Send message to multiple devices - which way to use?FCM 向多个设备发送消息 - 使用哪种方式?
【发布时间】:2020-05-27 15:41:41
【问题描述】:

有多种发送 FCM 消息的方法,即使我一遍又一遍地阅读文档,我也不明白该使用哪一种。

我的用例: 我有一个用户在她的 iPhone、iPad 和 Android 平板电脑上登录了该应用程序。我想确保将推送通知发送到她的所有设备。

有三种方法可以做到这一点(我正在使用管理员发送推送通知):

  • 主题消息传递 (messaging().sendToTopic): 我的理解是向更大的群体发送相同的通知。例如,一个主题可以是所有想要纽约天气通知的用户。不适用于我的用例。

  • Send Multicast (messaging().sendMulticast([array of tokens]): 我的理解是这会将相同的消息发送到数组中的所有设备令牌(最多 100 个)。这似乎很适合我的用例,对吧?

  • 设备群发消息(messaging().sendToDeviceGroup):这个我不太懂。为什么要使用它而不是多播或主题?

对于我的用例,似乎最好的方法是每次更新 FCM 令牌时,我都会将此令牌添加到数据库中的用户。然后我使用 admin.messaging().sendMulticast([array of tokens]) 发送通知。这是你会推荐的吗?为什么或为什么不?

【问题讨论】:

    标签: firebase firebase-cloud-messaging


    【解决方案1】:

    如果您针对单个用户的特定设备,您可能希望使用多播。您可能不想想要使用设备组。我建议阅读documentation 以了解设备组的工​​作原理:

    设备组消息允许您将多个设备添加到单个组。这类似于主题消息传递,但包括身份验证以确保组成员身份仅由您的服务器管理。例如,如果您想向不同的手机型号发送不同的消息,您的服务器可以将注册添加/删除到适当的组,并将适当的消息发送到每个组。设备组消息与主题消息的不同之处在于,它涉及从您的服务器而不是直接在您的应用程序中管理设备组。

    设备组基本上只是主题,其成员资格完全由您的服务器代码管理,而不是由客户端代码管理。

    【讨论】:

    • 感谢您的说明!我的问题是,在“向多个设备发送消息”(firebase.google.com/docs/cloud-messaging/ios/send-multiple)下的文档中,唯一的建议是“主题消息”和“设备组消息”。此外,在阅读有关 Stackoverflow 的其他问题时,我一遍又一遍地看到人们在我的用例中使用“设备群组消息传递”,这让我感到疑惑。
    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 2017-01-25
    • 2021-06-17
    • 2021-01-26
    • 1970-01-01
    相关资源
    最近更新 更多