如何根据数据库中的数据实现推送通知?
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/…) 我尝试使用该教程,但它们的方法已被弃用,正如帖子中所说的那样以上是关于如何根据数据库中的数据实现推送通知?的主要内容,如果未能解决你的问题,请参考以下文章