Docs 菜单
Docs 主页
/ /
Atlas App Services
/

推送通知 [已弃用]

在此页面上

  • Overview
  • 管理界面
  • 发送推送通知
  • 设置客户端以接收推送通知
  • 规则模板
  • 通知必须有具体标题
  • 通知必须针对特定主题
  • 通知只能发送给有限的一组用户 ID
  • 推送通知规则
  • 通知文档字段

重要

第三方服务和推送通知弃用

App Services 中的第三方服务和推送通知已弃用,转而创建在函数中使用外部依赖项的 HTTP 端点。

Webhook 已重命名为 HTTPS 端点,行为没有发生变化。您应该迁移现有的 Webhook。

现有服务将继续运行到 9 月30 ,2025

由于第三方服务和推送通知现已弃用,因此,默认将其从 App Services 用户界面中删除。如果您需要管理现有的第三方服务或推送通知,可以执行以下操作以将配置重新添加到用户界面中:

  • 在左侧导航栏中的 Manage(管理)部分下面,单击 App Settings(应用设置)。

  • 启用 Temporarily Re-Enable 3rd Party Services(暂时重新启用第三方服务)旁边的切换开关,然后保存更改。

Atlas App Services 支持将移动(Android 和 iOS)应用与 Firebase Cloud Messaging (FCM) 服务集成以提供推送通知。您可以在 App Services 控制台中配置和发送通知消息,而客户端则向Firebase Cloud Messaging (FCM)注册以获取发送到特定主题的消息。

通过App Services用户界面中的Push Notifications屏幕,您可以写入通知草稿、向用户发送通知以及定义通知规则。

Push Notifications(推送通知)屏幕中有四个标签页:

标签页名称
说明
Draft

在“草稿”标签页中,您可以查看草稿消息列表。对于草稿消息,可以:

  • 复制草稿消息

  • 编辑消息草稿

  • 删除消息草稿

Sent

Sent(已发送)标签页展示 App Services 已发送给注册客户端的消息。在这里,可以查看已发送消息的列表。对于已发送的消息,可以:

  • 重新发送已发送的消息。

  • 复制已发送的消息。

Config
在 Config(配置)标签页中,提供 FCM 凭证(发件人 ID 和旧版 API 密钥)。
Rules
您可以选择指定推送通知规则,以限制应用程序发送的推送通知类型。

您可以从 Push Notifications(推送通知)页面发送新的推送通知。单击 Send New Notification(发送新通知)按钮打开 Send New Notification(发送新通知)对话框。在此对话框中,您将提供通知消息、标签和相关主题受众。

发送新的推送通知
点击放大

在 Android 应用程序中集成推送通知的一般流程如下:

  1. FCM 添加依赖项。

  2. 创建Push 实例。

  3. 使用 push.registerDevice()push.registerDeviceAsync() 方法,以为推送通知注册客户端。

  4. 使用 FirebaseMessaging 的 subscribeToTopic() 订阅主题。

  5. 创建一个扩展抽象 FirebaseMessagingService 的类,并实现 onMessageReceived() 方法。该类处理与 FCM 的通信。

  6. 更新 Android 项目的 AndroidManifest.xml 文件,以注册您的应用程序的 FirebaseMessagingService 派生类和接收器。

要查看 FCM 与 Android 客户端集成的最新信息和详细步骤,请参阅在 Android 上设置 Firebase Cloud Messaging 客户端应用程序 的官方文档 指南。

要在 iOS 应用中将 FCM 与 Atlas App Services 结合使用,请按照以下常规步骤进行操作:

  1. 通过 Apple 开发者会员中心创建有效的 Apple 推送通知服务 (APNs) 证书。

  2. GoogleService-Info.plist 文件复制到您的 XCode 项目中。

  3. 配置 FCM 并添加您的 iOS 应用。在注册您的应用时,FCM 将返回一个注册令牌。

要查看有关 FCM 与 iOS 客户端集成的最新信息和详细步骤,请参阅在 iOS 上设置 Firebase Cloud Messaging 客户端应用官方指南。

{
"%%args.notification.title": "Test Notification Please Ignore"
}
{
"%%args.to": "%%values.validTopics"
}
{
"%%true": {
"%function": {
"name": "allUserIdsAreValid",
"arguments": [
"%%args.userIds"
]
}
}
}

注意

此模板调用名为allUserIdsAreValid的示例函数,该函数执行以下操作:

  1. 接受 userIds 参数中提供的用户 ID 列表

  2. 查询 MongoDB 以获取与当前用户 ID 相匹配的用户文档

  3. 将提供的电话号码与用户文档中列出的电话号码进行比较

  4. 返回比较的布尔值结果

exports = function(toPhone) {
const mdb = context.services.get('mongodb-atlas');
const users = mdb.db('demo').collection('users');
const user = users.findOne({ _id: context.user.id });
return user.phoneNumber === toPhone;
}

要指定推送通知的规则,请单击 Push Notifications(推送通知)页面上的 Rules(规则)标签页。

注意

与 App Services 中的其他服务不同,推送通知的规则是可选的。默认情况下,允许所有推送通知。但是,一旦指定了规则,该规则施加的限制将生效。

推送通知规则允许以下参数。可以通过 "%%args" 扩展来访问它们:

字段
类型
说明
userIds
字符串数组。
消息收件人的用户 ID。
to
字符串
消息的收件人。该值可以是设备的注册令牌、设备组的通知密钥或单个主题(前缀为 /topics/)。
registrationTokens
字符串数组。
接收组播消息的设备的注册令牌列表。
priority
字符串
通知的优先级。 值为"high""normal" 。 对应于通过 FCM 发送HTTP JSON消息的priority选项。 请参阅 FCM HTTP协议参考。
collapseKey
字符串
与可折叠消息关联的折叠键。 对应于通过 FCM 发送 HTTP JSON 消息的collapse_key选项。 请参阅 FCM HTTP 协议参考。
contentAvailable
布尔
一个标志,用于确定是否在收到消息时唤醒空闲的客户端应用程序。 对应于通过 FCM 发送 HTTP JSON 消息的content_available选项。 请参阅 FCM HTTP 协议参考。
mutableContent
布尔
一个标志,用于确定是否可以在向用户显示通知内容之前对其进行修改。 对应于通过 FCM 发送 HTTP JSON 消息的mutable_content选项。 请参阅 FCM HTTP 协议参考。
timeToLive
int

设备离线时保留消息的最长时间(毫秒)。有效值为 0 至 2419200。

对应于通过 FCM 发送 HTTP JSON 消息的time_to_live选项。 请参阅 FCM HTTP 协议参考。

data
JSON文档
数据消息的有效负载。 data文档由自定义键值对组成。 对应于通过 FCM 发送 HTTP JSON 消息的data选项。 请参阅 FCM HTTP 协议参考。
notification
JSON文档
通知的有效负载。 notification文档由预定义字段组成。 对应于通过 FCM 发送 HTTP JSON 消息的notification选项。 请参阅 FCM HTTP 协议参考。

下表列出了可用作推送通知规则的允许字段的 notification 文档的字段。要访问规则中的其中一个字段,请使用 "%%args.notification.<field>"

字段
类型
说明
title
字符串
通知标题。 对应于通过 FCM 发送 HTTP JSON 消息的title选项。 请参阅 FCM HTTP 协议参考。
body
字符串
通知正文。 对应于通过 FCM 发送 HTTP JSON 消息的body选项。 请参阅 FCM HTTP 协议参考。
sound
字符串
收到通知时播放的声音。 对应于通过 FCM 发送 HTTP JSON 消息的sound选项。 请参阅 FCM HTTP 协议参考。
clickAction
字符串
用户单击通知时要执行的操作。 对应于通过 FCM 发送 HTTP JSON 消息的click_action选项。 请参阅 FCM HTTP 协议参考。
bodyLocKey
字符串
用于正文string本地化的键。 对应于通过 FCM 发送 HTTP JSON 消息的body_loc_key选项。 请参阅 FCM HTTP 协议参考。
bodyLocArgs
字符串
用于替换正文string中用于本地化的格式说明符的string值。 对应于通过 FCM 发送HTTP JSON消息的body_loc_args选项。 请参阅 FCM HTTP协议参考。
titleLocKey
字符串
用于标题string本地化的键。 对应于通过 FCM 发送 HTTP JSON 消息的title_loc_key选项。 请参阅 FCM HTTP 协议参考。
titleLocArgs
字符串
用于替换标题string中用于本地化的格式说明符的string值。 对应于通过 FCM 发送 HTTP JSON 消息的title_loc_args选项。 请参阅 FCM HTTP 协议参考。
icon
字符串
仅适用于安卓系统。 通知图标。 对应于通过 FCM 发送HTTP JSON消息的icon选项。 请参阅 FCM HTTP协议参考。
color
字符串
仅适用于安卓系统。 指示 #rrggbb 格式中的图标颜色。 对应于通过 FCM 发送 HTTP JSON 消息的color选项。 请参阅 FCM HTTP 协议参考。
tag
字符串
仅适用于安卓系统。 如果指定,则每个通知不会产生新条目,而是用指定标签替换现有条目。 如果未设置,则每个通知都会产生一个新条目。 对应于通过 FCM 发送 HTTP JSON 消息的tag选项。 请参阅 FCM HTTP 协议参考。
badge
字符串
仅适用于 iOS。 gclient 应用主页图标上的徽章。 对应于通过 FCM 发送 HTTP JSON 消息的badge选项。 请参阅 FCM HTTP 协议参考。

后退

基于分区的同步模式