如何使用 Flutter 处理 FCM subscribeToTopic 和 unsubscribeFromTopic

How to handle FCM subscribeToTopic and unsubscribeFromTopic with Flutter

我正在开发一个使用 firebase 作为后端的应用程序。我正在使用 FCM 向我的用户发送通知,但是,我还没有掌握如何使用 subscribeToTopic 和 unsubscribeFromTopic。

我的用例(我不知道如何让它工作): 用户安装该应用程序后,他将订阅该应用程序的主要主题(我有这个工作)。然后用户可以转到设置以取消订阅主要主题(我没有这个工作)。

奋斗历程: 我找到的所有不同教程都描述了如何订阅主题,它们在欢迎屏幕的初始状态中调用 subscribeToTopic('some topic') 。每次应用程序启动时都需要这样做吗?当用户调用 unsubscribeFromTopic('some topic') 并且下次他们启动应用程序时会发生什么 subscribeToTopic('some topic') 在 initstate?

中再次调用

我的想法:第一次加载应用程序时,我会调用 subscribeToTopic('some topic') 并且再也不会。然后在设置屏幕中,用户可以取消订阅(和订阅)。这行得通吗?我应该注意什么?

在此先感谢您的帮助!

  • 您可以通过 在本地存储此信息或通过在 Firestore 上存储一个变量来检查该应用程序是否首次启动,该变量会告诉您用户之前是否登录过该应用程序。
  • 如果是第一次,请订阅该主题,如果不是,则不要订阅。
  • 第一次打开应用程序时会显示欢迎屏幕或类似内容,询问用户是否接收通知(这总是对用户更友好)。
  • 如果用户继续,您将此值保存在本地数据库中,例如共享首选项或配置单元。
  • 如果用户订阅了你调用订阅主题方法
  • 如果用户不订阅当然你什么都不做。

然后在设置页面:

  • 显示一个开关,其值是从您已经定义的本地数据库中收集的。
  • 当用户点击时存储值,根据这个值你订阅或onsubscribe。

这就是我在我的应用程序中使用主题而不是令牌的方式。