如何根据数据库中的数据实现推送通知?

Posted

技术标签:

【中文标题】如何根据数据库中的数据实现推送通知?【英文标题】:How to Implement Push Notification based on Data in a Databse? 【发布时间】:2016-10-22 13:37:30 【问题描述】:

所以我正在尝试使用托管在服务器上的数据库来实现推送通知。 有很多用户连接到应用程序,每个用户都有自己唯一的 ID 和 Password 。 现在有一个公共表维护所有用户的数据。只有管​​理员可以将数据添加到此表中。现在我想在管理员添加特定 ID 的数据时向用户提供推送通知。

也就是说,假设有两个用户的 ID 为 001 和 002。现在管理员将一个项目添加到数据库 "001" ,"xyz" "$20" 。所以我想在用户“001”的手机上显示一个新数据已经添加到他的名下,他可以去检查一下。 我正在尝试使用 GCM 和 Firebase 来实现这一目标。 aynone可以帮我吗?一些代码或解释或一个好的教程也可以正常工作。 谢谢你

【问题讨论】:

您说您正在使用 GCM 和 Firebase 进行尝试。到目前为止,您尝试过什么吗?任何代码sn-ps? 不,我刚刚浏览了很多教程和文本,试图寻找一些我可以实现的东西,以满足我的需要。我还没有编写任何代码,这也是我第一次实现推送通知。 我明白了。我还注意到您的帖子中有phpmyadmin,我假设它是托管服务器。为什么不直接使用 Firebase 数据库本身呢?然后使用 Firebase 的实时数据库功能。但请注意,使用 Firebase 数据库会保持额外的套接字打开(请参阅 Puf 的 reply 我的评论)。 好吧,我可以改变它。让它成为一个 firebase 托管服务器,我打算将它托管在 000webhost 但 firebase 托管似乎更合乎逻辑 既然说到了主题,既然您同时使用 Firebase 和 GCM,为什么不直接使用 firebase-cloud-messaging (FCM)? 【参考方案1】:

您必须在用户登录时将FirebaseInstanceId.getInstance().getToken() 发送到您的服务器并将其分配给数据库中的用户。 您可以使用 POST 请求从服务器发送推送通知。

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=SERVER_KEY_HERE

 "data": 
    "score": "5x1",
    "time": "15:10"
  ,
  "to" : "USER_TOKEN_HERE"

您可以在 Firebase 项目设置的 Cloud Messaging 选项卡中找到您的服务器密钥。

链接:

Set Up a Firebase Cloud Messaging Client App on android

Downstream messages

【讨论】:

分配给哪个数据库的用户。?主服务器托管数据库?那就是让我的firebase ID成为主数据库表的唯一键并根据它获取结果? 在主服务器托管的数据库中。 Firebase ID 只是数据库中用户模型的另一个属性。您只需要在必要时通过它的 id 找到用户的推送令牌。 好的。谢谢 。我会尝试所有这些【参考方案2】:

我假设您拥有 GCM 的所有注册 ID。现在考虑到您的要求,我建议您使用Amazon SNS。他们已经提供了所有东西,以便将推送通知发送到您的手机。管理员甚至可以轻松发布他想要的数据。如果您确实有很多注册 ID,那么只需从 mysql phpmyadmin 导出一个 CSV 文件并将其上传到 AWS SNS。

您只需支付 RS 2/- 以便日后使用服务,它属于 PAYG。 谢谢你。 我相信它会有所帮助。

【讨论】:

好的,我去看看。我正在寻找新的东西来尝试,反正我对这些东西一无所知。 是的,AWS 真的非常棒。有两个字段 1.User data 2.Regids of GCM 。您可以通过在 SNS 上创建新应用来上传您的凭据。 您可以提供任何可以帮助我的教程或文档吗? [使用 PHP MySql 的 GCM] (androidhive.info/2012/10/…) 我尝试使用该教程,但它们的方法已被弃用,正如帖子中所说的那样

以上是关于如何根据数据库中的数据实现推送通知?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 WatchOs 中的推送通知中获取数据并处理推送通知操作按钮单击事件

实现细粒度启用/禁用推送通知

如何使用 FCM 向我的数据库中的用户发送推送通知?安卓

推送通知指南?

如何在颤振中实现推送通知

如何判断应用程序是由于 Titanium 中的推送通知而打开还是恢复?