在后端我接收GCM Registration_id, user_id(唯一),纬度, 经度, 得分等从Android应用程序和保存在Amazon DynamoDB表。当我想向所有手机发送推送通知时,我获取所有GCM注册id,放入java.util.set以避免重复,然后根据注册id集向所有这些android设备发送推送通知。
但是现在问题是,因为每当用户卸载和安装 android应用程序再次,新的registration_id将生成,我收到它& &;保存在数据库中。因此,同一用户会多次收到推送通知,这是因为为同一用户保存了多个GCM Registration_ids。
如何在后端解决这个问题?我只想为每个用户发送一个推送通知。我正在使用Java Spring框架吗?任何示例代码和查询DynamoDB的代码都将非常有帮助。TIA
您需要在数据库中对每个用户保留一个GCM Registration_id条目,每当用户登录或安装应用程序时,您应该将GCM Registration_id发送到服务器并用新id替换旧的。查看以下链接
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html Expressions.Modifying.UpdateExpressions