【发布时间】:2023-03-12 23:30:01
【问题描述】:
我们正在使用安装模型来管理我们的推送通知。
我的问题很简单:我们什么时候应该重新生成installationId?
a) 对于新安装的应用程序
b) 对于应用的新安装或更新?
对于现有的installationId,我们遇到了一些问题更新模板,所以想知道我们是否应该执行选项 b)?
installationId 的预期生命周期到底是多少?
编辑
我们看到的问题如下:
- 用户安装使用推送通知模板 xyz 的应用程序版本,向 Azure NH 注册。生成新的
installationId。 - 用户收到推送通知,一切正常。
- 用户安装了应用版本的更新,注册发生在带有更新模板但相同
installationId的Azure NH。 - 用户收到旧模板的推送通知
换句话说 - 当installationId 相同时,模板不会出现更新。
编辑 2
这里有一些重现步骤。 App 是一个 iPhone 应用程序,它与 .NET 后端通信以注册推送通知。 .NET 后端与 Azure NH 对话。 (Microsoft.Azure.NotificationHubs v1.0.7)。后端正在使用安装模型(例如CreateOrUpdateInstallationAsync,接受应用程序生成的installationId,以及一堆模板/标签)。
复制步骤:
- 已删除应用
- 从应用商店安装的应用(旧模板)
- 打开应用,测试推送,效果很好(使用预期模板)
- 已下载最新版本的应用(新模板)
- 打开应用,应用使用新模板调用 .NET 后端到
CreateOrUpdateInstallation - 测试推送并获得旧模板。 (错误)
- 多次打开和关闭应用程序以强制更新,但仍获取旧模板。
【问题讨论】:
-
@Mimi Xu 希望你能帮助我。
-
installationId和设备令牌之间应该存在 1:1 的映射关系。这意味着您根本不必重新生成installationIds。你有什么样的问题? (如果您怀疑这是服务器端的错误,您能否提及您的命名空间和发生该错误的大致时间范围?) -
@NikitaG。 - 更新了更多信息的问题。命名空间是
homely-notificationhub。过去 24 小时内发生过。 -
正如 Nikita 所说,只要设备上有一个唯一的应用程序安装,就无需更改各种安装的安装 ID。如果您怀疑安装没有正确更新,我们希望获得更多信息!如果您不介意分享重现步骤和您正在使用的 sdk/api,我们的团队可以仔细查看。
-
@rpm1984,首先要确保的一件重要事情是registrations are not confused with installations。 (在您的问题中,您提到了installationId 以及“注册发生”。)另外,您能否始终如一地重现该场景?如果您进行模板更新然后立即进行推送,则新模板可能仍在更新,因此使用旧模板。但通常会在几秒钟内得到处理。