开启/关闭推送通知的实现方法

问题描述 投票:0回答:1

我已经在我的 Flutter 应用程序中使用 FCM 实现了推送通知。 接下来,我希望允许用户从 Flutter 应用程序(客户端)侧根据其内容控制接收推送通知的开/关状态(类似于在社交媒体应用程序中接收自己帖子上的“喜欢”的推送通知) .

我在研究中没有找到具体的实现方法,所以想在这里请教如何实现。

我考虑过的方法是将每个用户的推送通知项的设置保存在Firestore中。在推送通知发送过程中,应用程序将检查保存的值,并根据这些值决定是否将通知包含在有效负载中。

但是,这种方法需要在 Firestore 中存储每个推送通知项(例如“喜欢”或“提及”)的数据,并且每次客户端更改推送通知设置时都会与 Firestore 进行多次通信。这可能会导致网络通信和开销增加。

那么,除了在 Firestore 中保存推送通知启用/禁用值并在每次发送 FCM 消息时检查它的方法之外,还有其他方法来确定是否在客户端对每个推送通知项执行推送通知吗?

flutter firebase dart firebase-cloud-messaging google-cloud-messaging
1个回答
0
投票

是的,目前这就是解决方案。您可以将名为“receivePush”的布尔值与 Firebase Cloud Messaging (FCM) 令牌一起存储在存储令牌的同一文档中。用户可以更新这个“receivePush”值。获取 token 时,仅当“receivePush”的值不等于 false 时才发送通知。

如果您将 FCM 令牌存储在单独的集合中,您仍然需要执行读取操作来获取 FCM 令牌,因此在文档中添加额外的字段以应对启用/禁用推送通知等边缘情况是没有问题的。您也可以删除该令牌,但这很可能会导致重新创建新令牌产生更多开销。

© www.soinside.com 2019 - 2024. All rights reserved.