Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android身份验证和GCM推送通知_Android_Authentication_Oauth_Notifications_Google Cloud Messaging - Fatal编程技术网

Android身份验证和GCM推送通知

Android身份验证和GCM推送通知,android,authentication,oauth,notifications,google-cloud-messaging,Android,Authentication,Oauth,Notifications,Google Cloud Messaging,我希望为我的应用程序创建一些身份验证。这将基本上包括用户注册(最好使用他们的谷歌帐户,虽然不是必需的),并提供一个用户名,然后发送到我的服务器,然后有能力登录。然后,我希望客户端应用能够通过GCM(谷歌云消息)发送数据并接收推送通知,从而与我的服务器通信。服务器能够直接向某个用户而不是向所有注册设备发送推送通知,这一点很重要 有人能为我指明正确的方向吗?我看过一些教程,但我看到的总是向所有注册设备发送消息,而不是向特定用户发送消息 有关该应用程序的一些额外信息: -客户端应用程序(用户)需要向服

我希望为我的应用程序创建一些身份验证。这将基本上包括用户注册(最好使用他们的谷歌帐户,虽然不是必需的),并提供一个用户名,然后发送到我的服务器,然后有能力登录。然后,我希望客户端应用能够通过GCM(谷歌云消息)发送数据并接收推送通知,从而与我的服务器通信。服务器能够直接向某个用户而不是向所有注册设备发送推送通知,这一点很重要

有人能为我指明正确的方向吗?我看过一些教程,但我看到的总是向所有注册设备发送消息,而不是向特定用户发送消息

有关该应用程序的一些额外信息: -客户端应用程序(用户)需要向服务器发送一条信息。此信息还将包括需要发送给的用户。一旦服务器接收到信息,它应该通过GCM向指定用户的客户端应用程序发送推送通知

我不知道我需要如何设置认证系统,任何帮助都将不胜感激

多谢各位,
Daniel

当然,您可以向选定的用户发送推送通知。该过程大致包括以下步骤:

1) 将用户的GCM注册id与唯一的用户id(您分配给该用户的任何id;可以是电子邮件或sim卡id或类似的id)一起发送到您自己的服务器。将其保存到数据库中

2) 要向所选用户发送推送通知,请根据某些条件从数据库中选择用户,从数据库中检索其GCM注册ID并将其转发给GCM服务器


但有一件重要的事情你必须处理。GCM注册ID可能会更改,例如,如果用户卸载并重新安装应用程序。在这种情况下,您必须更新相应的数据库条目。

。在用户每次登录时更新数据库中的注册ID是一个好主意吗?我假设我能够在GCM登录后注册,获取注册ID并将其推送到服务器?除此之外,您是否知道任何合适的教程可以帮助我创建身份验证系统?再次非常感谢!我不认为每次用户登录时都应该执行注册。如果注册表id已更改,GCM将向您发送失败消息。如果您能够承受延迟,那么最好只在那时更新数据库。您可以在这里找到一个实现GCM客户机的好例子:对于这里的服务器:我会,不是吗?因为如果他们以不同的用户身份注销和登录,那么该用户将具有相同的注册ID,但链接到错误的用户。我更关心的是实际的身份验证部分。我不太确定如何让它登录,然后使用令牌获取和推送数据。让我了解一下,GCM(现在的Firebase)令牌标识“设备+应用程序”,唯一的用户id(如您所说,可能是用户名或电子邮件)标识登录应用程序的用户。然后,当我们向该令牌的GCM(Firebase)服务器发送通知时,我们还必须提供用户id,然后应用程序必须检查该用户id是否与记录的用户id对应并显示它?如果应用程序被停止,通知由手机上的谷歌服务处理,又会怎样呢?