【问题标题】:NotificationHub: What happens if duplicate installations are created with the same PNS handle?NotificationHub:如果使用相同的 PNS 句柄创建重复安装会怎样?
【发布时间】:2020-05-27 14:35:34
【问题描述】:

假设我像这样使用NotificationHub 创建安装:

var installation = new Installation
{
    InstallationId = installationId,
    PushChannel = pnsHandle
};

await NotificationHubClient.CreateOrUpdateInstallationAsync(installation);

并使用以下值运行两次连续执行:

第一:

InstallationId => A

PushChannel => X

第二:

InstallationId => B

PushChannel => X

Azure 会删除第一个安装并被第二个覆盖吗?因此,安装 A 将不再存在?

【问题讨论】:

  • 你测试的时候发生了什么?

标签: c# push-notification firebase-cloud-messaging apple-push-notifications azure-notificationhub


【解决方案1】:

Notification Hub 将允许您使用相同的 PushChannel 创建多个安装。它最终会创建两个独立的安装。

但需要注意的是,在创建发送到这些设备的推送时,通知中心将根据 PushChannel 进行重复数据删除,因此它实际上会检测到这些设备是否相同,并且有意不向用户发送重复推送。

希望对你有帮助!

【讨论】:

  • 谢谢。考虑以下场景:用户 A 和用户 B 注册同一个 PushChannel(假设一个注销,另一个在同一设备上创建一个新帐户)。由于某些活动,我决定通过用户 A 的 InstallationId 向用户 A 发送推送,但用户 B 当前已登录。用户 B 会收到用户 A 的通知吗?
  • 假设 PushChannel 没有改变,第二个用户确实会收到第一个用户的通知。但是,如果他们在 Android 级别更改帐户(假设您使用 FCM),则该帐户应与不同的 PushChannel 相关联。
  • @MarStr 你们有解决这个问题的计划吗?我现在正在考虑创建一个主键为 PushChannel 的数据库表,以便我知道在发生键冲突时删除现有安装以避免重复安装。您认为这是一个好的解决方法吗?
  • 对于这个问题,我们通常的补救措施是依靠操作系统特定的身份验证,并让单个用户与推送通道相关联。 :) 出于这个原因,我们没有计划改变我们的故事。但是,我了解您的情况。我认为删除安装的工作对你来说可能有意义,但因为我没有在应用程序上与你合作,我觉得我无法评论将这些信息存储在设备上还是在数据库中是否更有意义感觉。
  • 无法在设备上存储任何内容。 DB 在我的场景中更有意义。感谢您的讨论。
猜你喜欢
  • 1970-01-01
  • 2015-12-20
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 2020-08-18
  • 1970-01-01
  • 2013-12-23
  • 2021-11-21
相关资源
最近更新 更多