android - 主题消息和设备 token 云功能推送通知之间的区别?

标签 android firebase-cloud-messaging google-cloud-functions

在 Firebase 中,如果用户设备 token 存储在 Firebase 数据库中,云功能可以向任何用户发送推送通知。同样,如果用户订阅了一个主题,那么另一个用户也可以向该用户发送通知。现在的问题是,在什么情况下我们应该使用主题消息,在什么情况下我们应该使用云功能来发送通知。如果任何用户订阅了他的唯一 ID(由 Firebase 提供),那么任何人都可以通过向该唯一 ID 发布主题消息来向他发送主题消息。这是一个好方法,还是我们应该使用云功能使用设备 token 向该用户发送推送通知。订阅他自己的唯一 ID 以获取通知是个好主意吗?请帮我解决我的问题。主题消息是否可以免费使用?

最佳答案

Firebase Cloud Messaging 是完全免费的,包括主题的使用。

当您使用主题时,您将发送关于主题的消息与安装您的应用程序订阅该主题的事实分开。这意味着您可以稍后向主题添加订阅者,而无需编写额外的代码甚至数据(因为订阅主题的 token 列表由 FCM 本身处理)。

另一方面:主题是公开的。一旦有人知道主题 ID,他们就可以订阅该主题,并接收您发送到该主题的任何消息。

使用主题的替代方法是将消息直接发送到 FCM 实例 ID token 。在这种情况下,您将自己在某个地方保留一个 token 列表,并确定将消息传递到哪个 token 。在这种情况下,您可以完全控制谁接收消息,但必须维护您自己的 token 列表,以及什么 token 接收什么消息的映射。

请注意,可以从任何受信任的环境(例如您的开发机器、您控制的服务器或 Cloud Functions)发送消息(无论是发送到主题还是 token )。并且发送消息(无论是主题还是 token )不能从客户端代码(安全地)完成。

关于android - 主题消息和设备 token 云功能推送通知之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56814931/

相关文章:

android - 如何检查设备是 "1st generation Kindle Fire "还是其他版本?

Android,日历,向事件添加 RRULE 永远不起作用

java - android 编程 NameValuePair 为 api 23 删除

javascript - Cloud Functions for Firebase - 每天在特定时间更新值

security - Google Cloud Function 通过内部 IP 连接到 Google Compute Engine

java - 查找 int 数组是否包含数字的最快方法

java - 如何从服务器使用 Cloud Messaging Firebase 推送通知

ios - 如何打开应用程序并在 ios 中终止应用程序时显示推送通知

ios - Flutter FCM iOS 问题 - 在检索 FCM token 之前未设置 APNS 设备 token

node.js - Firebase 存储-如何使用 node.js 从存储中删除文件?