GCM推送通知多次发送或错误用户发送

时间:2014-06-06 07:20:56

标签: android push-notification google-cloud-messaging

我在制作中有一个有GCM通知的应用。有两个级别的用户:常规用户和特权用户。

现在,每次用户登录时,我都会将注册ID存储在我的数据库中。当用户注销时,我删除了注册ID。这很好。

但是,当用户没有注销时,删除/重新安装应用程序并以不同类型的用户身份登录(例如,之前是常规用户,现在是特权用户,反之亦然),他会收到他不应该发送的通知。接受。

或者如果他以新用户(常规用户或特权用户)身份登录,他会多次收到相同的通知。我猜这是因为旧的注册ID仍在数据库中,并且还有一个新的注册ID。

我该如何避免这种情况? Android文档显示未建议调用unregister方法。

1 个答案:

答案 0 :(得分:0)

我将注册ID存储在我的数据库中==>这应该保存在服务器上

当用户未注销时==>您需要维护此

的会话对象

删除/重新安装应用程序&以不同类型的用户身份登录==>在服务器端添加检查以禁止插入两次相同的值。只需把那个专栏搞清楚。

如果他以新用户(常规用户或特权用户)身份登录,他会多次收到相同的通知。 ==>您需要使用唯一ID标识用户。

提议的解决方案

表:服务器上的LoggedInUsers:[UserID(PK),GCM_ID,UserType]

    Login(UserID,GCM_ID,UserType)
    if(UserID does not exist in your onLine DataBse)
    {
    Insert(UserID,GCM_ID,UserType);
    }

  if(UserID exist in your onLine DataBse)
  {
  Update(UserID,GCM_ID,UserType)
  }

LogOut(UserID)
{
deleteUser(UserID); 
}

希望这有帮助。欢呼!