我生成了here,描述为notification_key

假设由于某些错误我无法存储它,所以我尝试重新注册。
这次,我收到400错误消息"notification_key already exists"
这看起来很奇怪,尤其是与registration of a device to GCM相比,您可以在其中注册任意次数,并且始终获得状态200为相同的注册ID。
现在,我无法再次注册,也无法注销,因为我没有notification_id
有什么办法可以从GCM获取以前生成的notification_key吗?
还是用其他notification_key_name重新注册的唯一方法?

最佳答案

根据文档,无法从GCM获取现有notification_keynotification_key_name。如果您考虑一下,尝试为现有的notification_key创建新的notification_key_name会给您带来错误,因为如果不是这种情况,那么在发生这种情况时,您可能会意外覆盖现有的notification_key的注册ID。错误地提供现有的notification_key_name

您正在将其与多次将设备注册到GCM进行比较,每次都获得相同的注册ID,但这不是相似的情况。当您将设备注册到GCM时,GCM可以识别该设备并知道它已被注册并返回相同的注册ID。对于用户通知,它仅包含您提供的notification_key_name,没有什么可以阻止您对多个用户使用相同的notification_key_name。也就是说,有些事情阻止了您-尝试使用以前使用的notification_key创建notification_key_name时遇到的错误。

解决问题的一种简单方法是将notification_key_name视为服务器生成的唯一标识符。如果您没有某个用户的notification_key(因为是新用户,或者因为您未能存储以前从Google获得的notification_key),则将生成一个新的唯一notification_key_name,并使用它来创建新的notification_key。您不必担心未能存储的旧notification_key

最后,您将notification_keynotification_key_name都存储在包含用户ID的表中。

10-07 22:43