Push notification 使用Firebase的每个用户设备的自定义推送通知设置

Push notification 使用Firebase的每个用户设备的自定义推送通知设置,push-notification,firebase-cloud-messaging,Push Notification,Firebase Cloud Messaging,我有一个本地的iOS和Android应用程序,还有一个web应用程序(使用React),我想为其发送通知。我已经设置了Firebase云消息传递,并且能够在使用FCM令牌调用带有“to”字段的FCM发送API时接收通知 我面临的问题来自于。。。我想允许用户对他们登录到的每个设备进行自定义通知设置。例如,我们将为多个事件提供通知,例如: 当用户完成训练时 当用户获得特定练习的新max记录时 新聊天信息 例如。。。我们希望能够允许用户选择他们希望在iPhone11中接收前两种通知事件类型,但只能

我有一个本地的iOS和Android应用程序,还有一个web应用程序(使用React),我想为其发送通知。我已经设置了Firebase云消息传递,并且能够在使用FCM令牌调用带有“to”字段的FCM发送API时接收通知

我面临的问题来自于。。。我想允许用户对他们登录到的每个设备进行自定义通知设置。例如,我们将为多个事件提供通知,例如:

  • 当用户完成训练时
  • 当用户获得特定练习的新max记录时
  • 新聊天信息
例如。。。我们希望能够允许用户选择他们希望在iPhone11中接收前两种通知事件类型,但只能在iPhoneSE中接收聊天信息事件类型。此外,他们希望在Chrome浏览器中接收第二和第三种通知类型

这就是Skype的工作原理,例如。。。每个设备都可以选择自己的自定义通知设置,与其他设备上选择的设置无关

不过,我想不出最好的办法来处理这个问题。我创建了一个数据库表,如下所示:

| UserDeviceId | UserId | DeviceType | FCMToken |
|--------------|--------|------------|----------|
| 1            |    1   | iOS        | adfgaf   |
| 2            |    1   | Android    | hgjadf   |
| 3            |    1   | Web        | adfg     |
| 4            |    1   | iOS        | adgh     |
| 5            |    2   | iOS        | hankn    |
然后我有一个设置表,如:

| SettingsId | UserDeviceId | NotificationTypeId |
|------------|--------------|--------------------|
| 1          | 1            | 1                  |
| 2          | 1            | 2                  |
| 3          | 2            | 1                  |
| 4          | 3            | 2                  |
| 5          | 5            | 1                  |
这里的问题是FCM代币可以更改,而我对此没有任何控制权。。。但是,FCM令牌不是特定于用户的。所以,如果我退出一个设备,其他人登录,那么他们将拥有相同的FCM令牌。。。这显然引起了一个问题

因此,当有人注销时,我需要为他们的用户删除这个令牌(如果他们重新登录,可以再次添加)。但是,我应该如何保存他们的通知设置,以便他们的所有设置在注销时不仅会被删除,而且可以重新登录并保留其设置。我已经读了一些关于获取用户设备id和。但我不确定的网络。。。在本例中,为用户使用的每个浏览器提供了一个新的FCM令牌(因此,我们可以将所有WEB通知压缩为一种设置类型)

是否有人对此想法有想法或建议,或者他们在应用程序中如何处理类似的问题