在Firebase中,如果用户设备令牌存储在Firebase数据库中,则云功能可以向任何用户发送推送通知。同样,如果用户订阅了主题,则另一个用户也可以向该用户发送通知。现在的问题是,在什么情况下我们应该使用主题消息传递,在什么情况下我们应该使用云功能发送通知。如果任何用户订阅了他的唯一ID(由Firebase提供),那么任何人都可以通过将主题消息发布到该唯一ID来向他发送主题消息。这是一个好方法还是我们应该使用云功能使用设备令牌向该用户发送推送通知。订阅自己的唯一ID以获得通知是个好主意。请帮助我解决我的问题。主题消息可以免费使用吗?
答案 0 :(得分:1)
Firebase Cloud Messaging完全免费使用,包括主题的使用。
使用 topics 时,您将有关主题的消息发送与应用程序安装已订阅该主题的事实分开了。这意味着您以后可以将订阅者添加到该主题,而不必编写其他代码甚至数据(因为订阅该主题的令牌列表由FCM本身处理)。
另一方面:主题是公开的。一旦有人知道主题ID,他们就可以订阅该主题,并接收您发送给该主题的所有消息。
使用主题的替代方法是直接将消息发送到 FCM实例ID令牌。在这种情况下,您将在自己的某个地方保存令牌列表,并确定将消息传递到的令牌。在这种情况下,您可以完全控制接收消息的人,但是必须维护自己的令牌列表以及映射哪些令牌接收哪些消息的
。请注意,可以从任何受信任的环境(例如开发计算机,您控制的服务器或Cloud Functions)完成发送消息(无论是发送给主题还是发送给令牌)。
并且(可靠地)通过客户端代码(安全地)完成发送消息(无论是发送给主题还是发送给令牌)。