使用 Firebase/Batch 向特定登录用户推送通知

Posted

技术标签:

【中文标题】使用 Firebase/Batch 向特定登录用户推送通知【英文标题】:Push Notification to Specific Logged In User using Firebase/Batch 【发布时间】:2016-07-11 06:02:40 【问题描述】:

我正在构建一个允许用户创建事件并将人员添加到这些事件的应用程序。它将事件和某些用户数据(电子邮件和显示名称)存储在 Firebase 数据库中。

我要做的是在另一个用户将特定用户添加到事件时向特定用户发送通知。我已经尝试查看 Firebase Notifications/Cloud Messaging 和 Batch 的文档,但我找不到将通知发送给单个用户而不是整个组的方法。

我该怎么做呢?我希望避免将通知存储在 Firebase 数据库中并设置一个 servlet 后端来重复查询数据库。

编辑:如果我必须为此创建一个 Java Servlet 后端,有人可以告诉我如何编写代码吗?

【问题讨论】:

【参考方案1】:

我认为您可以通过在使用控制台发送通知或使用发布请求到 FCM 服务器时指定设备令牌来做到这一点。但不幸的是,您必须自己手动处理每个设备令牌(当它register 到 FCM 时从设备获取它,并将其保存到您自己的数据库中)。

如果您使用控制台,您可以将令牌放在目标 -> 单个设备下的“FCM 注册令牌”字段中。

如果你使用 post 请求,你可以发出这样的请求


    "data": "my_custom_key" : "my_custom_value",
    "registration_ids": ["your-device-token","your-device2-token"]

【讨论】:

我希望在将用户添加到事件时自动生成通知,而不必自己通过控制台进行。 我认为您必须在后端服务器的某处通过 GCM HTTP 连接服务器协议实现发送通知消息。所以它可以在需要时由后端自动生成。请参阅此处developers.google.com/cloud-messaging 的详细信息。只需将registration_ids(就像我上面说的)添加到帖子正文中。【参考方案2】:

Batch.com 提供了一个名为 Transactional API 的更简单的 API,用于向一个或多个用户发送通知,这些用户可能不想处理这些用户 ID、Firebase UID 等标识APNS 推送令牌或 GCM 注册 ID 的复杂性。与 FCM 不同,您将获得有关这些通知的完整分析视图(例如:打开率)。

您可以直接从您的应用程序代码触发推送通知,方法是使用我们的事务 API 的 Swift client 或编写您自己的 HTTP 客户端(这是一个带有 JSON 正文的标准 POST 请求)。如果您决定从服务器触发通知,我们甚至有一个Node.js 的客户端。

如果您使用的是 Firebase,我们会为 plug Firebase with Batch 提供特定文档。

【讨论】:

以上是关于使用 Firebase/Batch 向特定登录用户推送通知的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4.2 / Devise - 如果禁用cookie,则向用户显示特定消息

如何向用户登录的用户发送游戏请求推送通知?

如何向 FCM(Firebase 云消息传递)令牌的特定用户发送消息?

如何获取特定登录用户的谷歌日历 URL

Firebase + Batch 在推送通知方面是 Parse 的一个很好的替代品吗?

显示登录用户信息