首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在聊天应用中使用FCM主题进行通知?

问如何在聊天应用中使用FCM主题进行通知?
EN

Stack Overflow用户
提问于 2018-12-30 05:24:31
回答 2查看 2.6K关注 0票数 1

我正在使用Flutter和Firestore后端进行聊天功能。

每条消息都是Firestore集合中具有UID和文本字段的新文档。聊天是1:1和随机的,所以在进入聊天之前不知道用户将与谁交谈。聊天集合中的DocID都是自动id。

我已经阅读了可以使用主题来管理发送通知。这应该比使用单个设备fcm令牌更容易。

谁知道如何为这个随机的1:1聊天应用实现use topic?

EN

回答 2

Stack Overflow用户

发布于 2018-12-30 15:08:12

您绝对可以为每个1:1会话使用单独的主题,例如,使用我在此处描述的命名方案:Best way to manage Chat channels in Firebase。但是,正如Doug已经在他的评论中指出的那样,有一些事情需要考虑,导致大多数开发人员不只是将FCM用于他们的聊天应用程序。

例如: FCM主题不受保护。这意味着任何找到主题ID的人都可以订阅它,从而无意中听到1:1的对话。虽然您可以生成难以猜测的主题,但您不应该依赖于不知道主题ID作为一种安全机制。

考虑替代方案的另一个原因是FCM消息是暂时的:一旦它们被传递,就不再有任何痕迹。使用当前的Firestore实现,您可以查询数据库以显示所有消息,而使用纯FCM实现,您必须构建自己的数据库(如果您的应用程序需要这样做)。

出于这些原因,我所知道的大多数聊天应用程序都使用FCM (用于推送通知)和在线数据库(用于持久性)的组合作为它们的后端服务。

票数 2
EN

Stack Overflow用户

发布于 2019-01-02 22:22:57

我发现Frank关于“排序的userID组合键”的评论真的很有趣。我可能会使用它作为数据库中的聊天密钥(realtime/firestore),然而,对于通知,我认为我仍然会为每个用户使用一个主题-这样我就可以避免通知发布消息的用户。如果这不是问题,那么只需要为每个聊天室选择一个主题即可。

还提到Frank,我可能会在所有主题名称中使用额外的键,以使它们真的很难猜到。(但以后再添加,这样你就不会被非核心的东西分心了)

In this answer您有一个示例,说明如何使用onCreate触发器将通知发布到主题(从函数后台)。

在flutter代码中,您可以使用firebase_messaging插件中的subscribeToTopic开始侦听主题。

注意:如果你的应用程序支持用户注销,它可能会:),那么你也将不得不使用delete the token in the device来避免收到来自最后一个登录用户的通知。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53973441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档