C# NotificationHub:如果使用相同的PNS句柄创建重复安装,会发生什么情况?

C# NotificationHub:如果使用相同的PNS句柄创建重复安装,会发生什么情况?,c#,push-notification,firebase-cloud-messaging,apple-push-notifications,azure-notificationhub,C#,Push Notification,Firebase Cloud Messaging,Apple Push Notifications,Azure Notificationhub,假设我使用NotificationHub创建了一个安装,如下所示: var installation = new Installation { InstallationId = installationId, PushChannel = pnsHandle }; await NotificationHubClient.CreateOrUpdateInstallationAsync(installation); 并使用以下值运行两个连续执行: 第一名: Installation

假设我使用
NotificationHub
创建了一个安装,如下所示:

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

await NotificationHubClient.CreateOrUpdateInstallationAsync(installation);
并使用以下值运行两个连续执行:

第一名:

InstallationId=>A

PushChannel=>X

秒:

InstallationId=>B

PushChannel=>X


Azure是否会删除第一个安装并在第二个安装之前覆盖它?因此,安装A将不再存在?

通知中心将允许您使用同一推送通道创建多个安装。它最终将创建两个独立的安装

不过有一个警告,当创建一个发送到这些设备的推送时,Notification Hub将根据推送通道消除重复,因此它将实际检测到这些设备是同一个设备,并故意不向用户发送重复的推送


我希望这有帮助

你测试的时候发生了什么?谢谢。考虑下面的场景:用户A和用户B登记相同的PushChannel(假设一个日志退出,另一个在同一设备上创建新帐户)。由于某些活动,我决定通过用户a的安装ID向用户a发送推送,但用户B当前已登录。用户B会收到用户A的通知吗?假设推送通道不变,第二个用户确实会收到第一个用户的通知。但是,如果他们在Android级别更改帐户(假设您使用的是FCM),则该帐户应与其他PushChannel关联。@MarStr你们有任何计划来解决此问题吗?我现在正在考虑创建一个数据库表,它的主键是PushChannel,以便在发生键冲突时删除现有安装,以避免重复安装。您认为这是一个很好的解决方法吗?我们解决这个问题的常用方法是依靠操作系统特定的身份验证,并让单个用户与推送通道关联。:)因此,我们没有计划改变我们的故事。不过,我理解你的想法。我认为删除安装的方法对你来说是有意义的,但是因为我没有和你一起使用这个应用程序,我觉得我不能评论将这些信息存储在设备上或数据库中是否更有意义。不能在设备上存储任何东西。DB在我的场景中更有意义。谢谢你的讨论。