【问题标题】:How to handle FCM subscribeToTopic and unsubscribeFromTopic with Flutter如何使用 Flutter 处理 FCM subscribeToTopic 和 unsubscribeFromTopic
【发布时间】:2021-10-27 03:57:27
【问题描述】:

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

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

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

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

提前感谢您的帮助!

【问题讨论】:

    标签: firebase flutter firebase-cloud-messaging


    【解决方案1】:
    • 第一次打开应用时会显示欢迎屏幕或类似内容,您可以在其中询问用户是否接收通知(这总是对用户更友好)。
    • 如果用户继续,您可以将此值保存在本地数据库中,例如共享首选项或配置单元。
    • 如果用户订阅了你调用订阅主题方法
    • 如果用户不订阅当然你什么都不做。

    然后在设置页面:

    • 显示从您已经定义的本地数据库中收集的值的开关。
    • 当用户点击时存储的值,基于此值您订阅或订阅。

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

    【讨论】:

      【解决方案2】:
      • 您可以通过using shared_preferences 在本地存储此信息或通过在 Firestore 上存储一个变量来检查应用程序是否首次启动,该变量告诉您​​用户之前是否登录过应用程序。
      • 如果是第一次订阅主题,则不订阅。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-25
        • 2020-07-24
        • 2017-02-25
        • 1970-01-01
        • 2021-02-22
        • 2021-08-03
        相关资源
        最近更新 更多