FCM 与 AWS SNS

2023-11-25

我在用AWS我的 android 项目的资源,我计划为我的项目添加推送通知服务AWS SNS.没有什么问题让我很困扰。我没有发现任何与这些相关的问题,除了一两个但解释不清楚的问题。

1.Does AWS支持FCM? SNS与...一起工作GCM。但 Google 建议使用 FCM 而不是GCM。我没有找到AWS支持FCM.

2.Do AWS即使在发送推送通知后也将消息(或数据)存储到数据库中?

3.我尝试将FCM api key放入SNS应用平台,为什么显示参数无效?


FCM 向后兼容 GCM。在 AWS 上设置 FCM 的步骤与GCM 设置程序并且(至少目前)FCM 在服务器端配置方面与 GCM 和 SNS 透明地协作。

However,如果您要发送data发送到 Android 设备的有效负载将不会被处理,除非您实现客户端服务延伸FirebaseMessagingService。 AWS 控制台中的默认 JSON 消息生成器发送data消息,除非实现了上述服务,否则您的应用程序将忽略这些消息。为了解决这个问题进行初始测试,您可以提供一个自定义的notification您的设备将接收的有效负载(只要您的应用程序不在前台)

GCM-FCM 迁移说明由 Google 提供,但是您需要进行的更改主要是在应用程序方面。

使用 SNS 在您的应用程序上测试 GCM/FCM 需要遵循的步骤是:

  1. 创建一个SNS平台应用,选择 Google Cloud Messaging (GCM) 作为推送通知平台,并提供您的服务器 API 密钥 in the API key field.
  2. 选择平台应用程序并单击创建平台端点 button.
  3. 提供实例 ID (设备令牌)由您的应用程序生成。您必须延长FirebaseInstanceIDService并覆盖onTokenRefresh方法在您的 Android 应用程序中查看此内容。一旦您已经这样做了,卸载并重新安装您的应用程序,您的令牌应在首次启动时打印到 Android Studio 中的调试控制台。
  4. 点击添加端点 button.
  5. 单击您的平台应用程序的 ARN 链接。
  6. 为您的设备选择新创建的端点,然后单击发布到端点 button.
  7. 选择 JSON消息格式,然后单击JSON 消息生成器 button.
  8. 输入测试消息并单击生成 JSON button
  9. 现在到了“陷阱部分”。

SNS 生成的消息的形式如下:

{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}

正如我们前面提到的,data如果没有实现接收有效负载的服务,则有效负载将被忽略。我们希望在不编写太多代码的情况下进行测试,因此我们应该发送notification有效负载。为此,只需将 JSON 消息更改为:

{
"GCM": "{ \"notification\": { \"title\": \"test title\", \"body\": \"test body\" } }"
}

(有关 FCM 消息的 JSON 格式的更多信息,请参阅FCM 文档.)

完成此操作后,请确保您的应用程序未在设备上运行,然后点击发布消息按钮。您现在应该会在设备上看到弹出的通知。

当然,您可以通过 Amazon SNS API 以编程方式完成所有这些操作,但是所有示例似乎都使用data有效负载,因此您需要记住这一点并生成适合您的用例的有效负载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FCM 与 AWS SNS 的相关文章

  • 解压 R 数据框中的列表

    我有一个dataframe其中一个字段包含不同长度的列表 我想将该字段中列表的每个元素提取到其自己的字段中 以便我可以将结果收集到一个很长的字段中dataframe每个列表元素都有一个 id 这是一个例子dataframe dat lt s
  • Instagram 勒克斯效果

    Instagram 最近添加了一个 Lux 按钮 可以对您拍摄的照片进行自动对比 调平 我有一堆图片需要以类似的方式自动调平 使这些图片看起来更好 如果我想在 Imagemagick 中使用批处理命令 需要使用什么 秘密成分 我应该坚持对比
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • 通用类不会将委托调用转发给具体子类

    鉴于以下情况 protocol EntityType var displayString String get extension String EntityType var displayString String return self
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015
  • 是否可以将 Cypress e2e 测试与 firebase auth 项目结合使用?

    我正在探索 Cypress 进行 e2e 测试 看起来是很棒的软件 问题在于身份验证 Cypress 文档解释了为什么使用 UI 非常糟糕here https docs cypress io guides getting started t
  • 本地权威声明和外部提供商声明的混淆

    我正在创建一个简单的 WebApi 它允许用户与 Facebook 连接 当我从 facebook 获取 accessToken 时 我调用 RegisterExternal 创建 Asp Net Identity 记录并存储令牌中的声明
  • 如何移动 Zend_Layout 的“视图”

    通常它会是这样的结构 application modules somemodule views scripts index index phtml 我如何将其移动到 application templates somemodule temp
  • 使用 eclipse IDE 配置 angularjs

    我想开始使用 AngularJs 和 Java Spring 进行开发 我使用 Eclipse 作为 IDE 我想配置我的 Eclipse 以使这些框架无缝工作 我知道我可能要求太多 但相信我 我已经做了很多研究 你们是我最后的选择 任何帮
  • 如何获取 URL 中未知的 $_GET 值的数组?

    我正在使用一个在线购物车 它接受订购的商品并通过 URL 将其唯一 ID 传递到 process php 页面 所以 URL 看起来像这样 process php code 1 231 code 2 532 code 3 342 Anoth
  • 使用 Python 生成类似于 Messenger 或 kik 代码的圆形二维码

    我可以使用 Python 生成圆形 QR 码 就像 Facebook Messenger 或 kik 使用的那样吗 我访问了很多网站 但找不到这种类型的二维码 默认情况下 Python 生成方形 QR 码 但在我的项目中我想要圆形 QR 码
  • Rails 7 缺失部分

    我正在升级到 Rails 7 1 并在使用 JS 部分的视图中遇到奇怪的错误 缺少部分 account stripe js erb application stripe js erb 与 locale gt fr formats gt ht
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co
  • 为什么这个函数在额外读取内存时运行速度如此之快?

    我目前正在尝试了解 x86 64 上某些循环的性能属性 特别是我的 Intel R Core TM i3 8145U CPU 2 10GHz 处理器 具体来说 在循环体内添加一条额外的指令来读取内存几乎可以使性能提高一倍 而细节并不是特别重
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 如何为React hooks(useState等)做流类型注解?

    我们应该如何将 Flow 类型注释与 React hooks 一起使用 例如useState 我尝试寻找一些如何实施它们的示例 但找不到任何东西 我试过这个 const allResultsVisible setAllResultsVisi
  • 与文件名中的冒号“:”作斗争

    我有以下代码 用于加载大量 csv gz 并将它们转储到其他文件夹中 并将源文件名作为一列 object DailyMerger extends App def allFiles path File List File val parts
  • 无法在 Windows 10 上构建 Detectron2

    尽管 Windows 上的 Detectron2 没有官方支持 但有很多可用的说明 我尝试按照这些说明进行操作 但最终出现了相同的错误 这是我的设置 OS Windows 10 专业版 19043 1466 微软视觉工作室 2019 CUD

随机推荐

  • 使用剪贴板将 Excel 数据复制到 IPython 中的 Python 列表中?

    有没有办法执行以下工作流程 选择 Excel 电子表格中的单元格 使用 Ctrl C 复制它们 将选定单元格的内容以 python 列表或 numpy 数组的形式获取到 IPython shell 中 Update 看来readline P
  • Spark - 使用 Firehose 从分区文件夹中读取 JSON

    Kinesis firehose 将文件 在本例中为时间序列 JSON 的持久性管理到按 YYYY MM DD HH 分区的文件夹层次结构 精确到 24 位数的小时 太棒了 那么如何使用 Spark 2 0 读取这些嵌套的子文件夹并从所有叶
  • JQuery 滚动/分页选项卡

    我正在尝试为一个网站创建一个简单的选项卡栏 该网站能够滚动不适合页面的选项卡 这非常简单 不需要任何 ajax 或动态加载的内容 它只是显示所有选项卡 当您单击一个选项卡时 它会将您带到另一个页面 我已经在互联网上搜索过 但似乎找不到除以下
  • 将多对多关系迁移到 Core Data 中的联接表

    我有一个 iPhone 应用程序 它使用多对多关系将标签和注释链接在一起 我目前正在使用核心数据的 关系 功能来完成此任务 但希望迁移到使用连接表 这是我的挑战 我想从旧模型迁移到联接表模型 并且我需要弄清楚如何执行该数据迁移 有没有关于如
  • 捕获任何 VCL 组件上的鼠标单击,并确定其 .Tag 值

    我正在使用国产翻译工具 下次我将使用其中一个库 如下所述 delphi翻译工具 我的翻译人员抱怨翻译一长串字符串很困难 因为他们没有在上下文中看到它们 在它们出现的屏幕上 一位翻译提出了一个很好的建议 他应该能够单击某个组件来更改其文本 我
  • 这是显而易见的事情,但为什么会失败呢?

    编写 net 代码已经很多年了 但我感觉自己像个菜鸟 为什么下面的代码会失败 byte a Guid NewGuid ToByteArray 16 bytes in array string b new UTF8Encoding GetSt
  • 谷歌浏览器和火狐浏览器缓存 DNS 记录多长时间

    多长时间Firefox and Chrome cache DNS记录在自己的 浏览器 中DNS缓存 他们尊重吗TTL 我认为它是重复的Firefox 使 DNS 缓存失效 它有两个配置值Firefox network dnsCacheExp
  • HTML 源代码中锚点之间的新线会在浏览器中创建空白空间 [重复]

    这个问题在这里已经有答案了 可能的重复 如何消除内联元素之间的空格的可见性 我通常将源代码格式化为易于人类阅读 据我所知浏览器会删除任何 n t来自源的字符 因此它们不会进入渲染的 html 今天 我构建了一个菜单 在渲染的 html 中的
  • fopen无法打开文件的原因是什么

    我有以下代码 我试图打开一个文本文件 char frd 32 word list txt FILE rd fopen frd rb if rd std cout lt lt Coudn t open file t lt
  • 阻止来源为“http://localhost:8084”的框架访问跨源框架

    我正在尝试打印由 jspdf 生成并加载到 iframe 上的 pdf 但收到以下错误消息 DOMException 阻止了具有原点的框架 http 本地主机 8084 从访问跨源框架 这是我的代码 function open var pd
  • 单元测试帮助。如何测试控制台的消息输出?

    我是单元测试的新手 如何检查控制台输出 我有 namespace XXShapes public abstract class XXShape public virtual void DrawXXShape Console WriteLin
  • 在 try catch 中使用 Throwable 和 Exception 之间的区别[重复]

    这个问题在这里已经有答案了 有时 我看到 try catch Throwable e 有时 try catch Exception e 有什么不同 通过捕捉Throwable它包括子类化的东西Error 通常 您不应该这样做 除非在线程的最
  • 用于条件绑定的 swift 2 初始值设定项必须具有可选类型,而不是“UIImage”

    更新我的 xcode 以运行 swift 2 后 它给了我这两个我很难解决的错误 Error 1无法为 String AnyObject 类型的值添加下标 索引类型为 String Code let image UIImage editin
  • 这些频段过去是靠肉眼判断的,那么如何以编程方式来判断呢?

    操作员过去常常检查频谱 了解位置和width每个峰值并判断该谱图所属的部分 在新的方式中 图像由相机捕获到屏幕上 并且每个带的宽度必须以编程方式计算 旧系统 分光镜 gt 人眼 新系统 分光镜 gt 相机 gt 程序 有什么好的方法可以计算
  • 按索引列表拆分字符串

    我想按索引列表拆分字符串 其中拆分段以一个索引开始 并在下一个索引之前结束 Example s long string that I want to split up indices 0 5 12 17 parts s index for
  • 二叉树问题。检查相似形状

    嗨 我被困在这样做 不知道该怎么做 如果我有两个二叉树 我如何检查它们是否具有相同的形状 只要树结构相等 节点中的数据并不重要 关于如何解决这个问题有什么想法吗 您可以通过递归轻松地做到这一点 下面的代码之所以有效 是因为当且仅当两个非空树
  • Scala - 新与对象扩展

    使用 new 运算符定义对象与通过扩展类定义独立对象有什么区别 更具体地说 给定类型class GenericType 有什么区别val a new GenericType and object a extends GenericType
  • 从 Linux shell 中的“ftp”命令获取退出状态代码

    我需要从命令行程序检索退出状态代码 不用担心 我用了 但对于 ftp 即使它没有连接 它也会打开 ftp shell 所以我无法理解连接尚未发生 尝试这段代码来理解 bin sh ftp 1234567 OUT if OUT eq 0 th
  • 在 UI 测试我的 SwiftUI 应用程序时如何访问 VStack

    我有一个VStack代码依赖于 onTapGesture方法 像这样的东西 VStack if imageShow Image image1 else Image image2 onTapGesture imageShow toggle 我
  • FCM 与 AWS SNS

    我在用AWS我的 android 项目的资源 我计划为我的项目添加推送通知服务AWS SNS 没有什么问题让我很困扰 我没有发现任何与这些相关的问题 除了一两个但解释不清楚的问题 1 Does AWS支持FCM SNS与 一起工作GCM 但