firebase - 如何使用 Flutter 处理 FCM subscribeToTopic 和 unsubscribeFromTopic
问题描述
我正在开发一个使用 firebase 作为后端的应用程序。我正在使用 FCM 向我的用户发送通知,但是,我还没有掌握如何使用 subscribeToTopic 和 unsubscribeFromTopic。
我的用例(我不知道如何让它工作): 用户安装应用程序后,他将订阅应用程序的主要主题(我有这个工作)。然后用户可以转到设置以取消订阅主题(我没有这个工作)。
斗争: 我找到的所有不同教程都描述了如何订阅一个主题,他们在欢迎屏幕的 initstate 中调用 subscribeToTopic('some topic')。每次应用程序启动时都需要这样做吗?当用户调用 unsubscribeFromTopic('some topic') 并且下次他们启动应用程序 subscribeToTopic('some topic') 在 initstate 中再次调用时会发生什么?
我的想法:第一次加载应用程序时,我调用 subscribeToTopic('some topic') 并且再也不会。然后在设置屏幕中,用户可以取消订阅(和订阅)。这行得通吗?我应该注意什么?
提前感谢您的帮助!
解决方案
- 您可以通过使用在本地存储此信息的 shared_preferences或通过在 Firestore 上存储一个变量来检查应用程序是否是第一次启动,该变量告诉您用户之前是否登录过该应用程序。
- 如果是第一次订阅,则订阅该主题,如果不是,则不订阅。
推荐阅读
- php - 提交响应时如何避免生成新的随机值?
- asp.net-core - .NET 服务参考发送错误的接受标头(文本/纯文本)
- android - Android 通知媒体样式 - 不必要的按钮可见
- visual-studio-code - 如何更改 VSCode 字体
- android-studio - Android 上的 QApplication,从 JNI 开始,一直到 SEGFAULT
- r - 如何在数据框中选择/过滤/删除仅包含 NA 或 N/A 字符串的列?
- visual-studio-code - 带有扩展的Visual Studio代码环绕找不到环绕.自定义片段
- node.js - 反向代理以使用 virtualmin 在静态 url 上为本地 reactjs 应用程序提供服务
- python - python中selenium库的问题(而不是给程序一个错误,返回None)
- mongodb - 在嵌套数组 MongoDB 中加入文档