使用 firebase admin sdk 发送通知不起作用

2024-04-05

我正在尝试将通知从 Node.js 服务器发送到 ios 应用程序。如果我从 Firebase 控制台发送通知,它似乎可以工作,但如果使用 firebase-admin sdk 从我的 node.js 服务器尝试,则不起作用。

我按照教程https://firebase.google.com/docs/cloud-messaging/admin/send-messages https://firebase.google.com/docs/cloud-messaging/admin/send-messages.

我不明白的一件事是发送通知后的响应似乎有效。我得到以下回应。

{
    "results": [
        {
            "messageId": "0:1511109840587284%a63b4c28f9fd7ecd"
        }
    ],
    "canonicalRegistrationTokenCount": 0,
    "failureCount": 0,
    "successCount": 1,
    "multicastId": 7436388871122493000
}

有谁知道我做错了什么?

-- Edit

这是发送通知的代码。admin是 firebase-admin 实例。

router.post('/notify', (req, res) => {
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "<database>.firebaseio.com"
});

var registrationTokens = [
    'tokenFromIosApp'
];
var payload = {
    data : {
        body : 'TEST'
    }
};

admin.messaging().sendToDevice(registrationTokens, payload)
    .then((response) => {
        console.log('Sent successfully.\n');
        console.log(response);
        res.status(statusCodes.Ok);
        res.json(response);
    })
    .catch((error) => {
        console.log('Sent failed.\n');
        console.log(error);
        res.status(statusCodes.InternalServerError);
        res.json(error);
    });
});

要发送通知,有效负载必须使用notification key https://firebase.google.com/docs/cloud-messaging/admin/send-messages#defining_the_message_payload:

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

使用 firebase admin sdk 发送通知不起作用 的相关文章

随机推荐

  • 如何在 SQL Server 中创建唯一的随机字母数字序列

    我想将唯一的随机字母数字序列作为数据库表的主键 序列中的每个字符都是字母 a z 或数字 0 9 我想要的示例 kl7jd6fgw zjba3s0tr a9dkfdue3 我想创建一个可以处理该任务的函数 您可以使用唯一标识符 https
  • React Native TouchableOpacity onPress 问题

    我有一个简单的图标按钮 如下所示 class SideIcon extends Component render return
  • 使用递归将列表分解为子列表

    我正在尝试使用类型声明编写一个函数 Int Bool gt Int 我希望该功能仅添加Ints 到同一个嵌套子列表 如果布尔值是True 但是如果布尔值是False 我想要Int与下一个相关联True要添加到 a 的布尔值new子列表 例如
  • 内存不足,无法继续运行 Java 运行时环境

    我的系统有 4 GB RAM 运行 Windows 操作系统 我安装了 VMWare 来设置具有 2GB RAM 的 Ubuntu 虚拟机 在 Ubuntu 中 我打开 Eclipse 并开始编码 Eclipse 开始一次又一次关闭 我开始
  • 如何将 HostControl 实例传递给 TopShelf 中的自定义主机服务?

    This 问题已在其他地方提出 https stackoverflow com questions 28740658 how to detect if topshelf is running in console mode 但没有迹象表明我
  • 如何更新 SQL 中的选择性字段(保留部分字段不变)?

    我想用两个日期更新记录 如果没有要更新的新值 则保持现有数据不变 这是一个示例表记录 id last foo last bar 1 2010 05 30 2010 05 30 我正在使用的查询 UPDATE sampledates SET
  • Android 使用 P12 证书签署数据

    因此 我搜索了一段时间 但找不到真正需要的东西 因为出现的每个结果都与签署实际的包有关 所以基本上我所做的就是 Web 服务受到会话管理器的保护 为了获取会话号 需要将 GUID 发送到 Web 服务 在 iOS 方面 我们能够获得此设置
  • 通过 AWS API Gateway 集成模板使用 DynamoDB 的 lastEvaluatedKey 进行扫描

    我使用 AWS APIGateway 集成模板直接扫描 dynamoDB 而不是编写单独的 lambda 来处理请求 响应 但是 扫描有 1MB 的限制 这导致扫描仅限于部分数据 根据文档 我们应该重新扫描 直到找到匹配项或使用 lastE
  • 如何将 .csv 文件导入 R?

    我有这个 csv 文件 ID GRADES GPA Teacher State 3 C 2 Teacher3 MA 1 A 4 Teacher1 California 我想做的是使用 R 统计软件读取文件 并将标题读入某种列表或数组 我是
  • 有没有具有这些功能的轻量级 JDBC 包装器?

    命名参数 就像 Spring 中的 JdbcTemplate JDBC 连接设置的 XML 配置 用于查询的 XML 配置 类似休眠的东西
  • ParDo 中的侧面输出 | Apache Beam Python SDK

    由于该文档仅适用于 JAVA 我无法真正理解它的含义 它指出 虽然 ParDo 始终生成一个主输出 PCollection 作为 apply 的返回值 但您也可以让 ParDo 生成任意数量的附加输出 PCollection 如果您选择有多
  • 如何从 SQL Server 更改跟踪获取所有已更改表的列表

    如何获取在给定版本之后有任何跟踪更改的所有表 已启用更改跟踪 的列表 这将返回自上一个跟踪版本以来已更改的所有表的列表 set nocount on We want to check for changes since the previo
  • 计算段:距绝对地址的偏移量

    我可以计算一个地址Segment Offset as Segment 0x10 Offset 但如何计算相反的情况呢 例如 我怎样才能从0xF4170 to F400 0170和来自0xACF04 to ABCD 1234 您需要具有起始基
  • 为什么控件不想被删除?

    我试图删除 winform 面板中包含的所有控件 但它们只是不想被删除 其中一些被删除 有些则没有 我已经尝试了两种方法 但什么也没有 foreach foreach Control controlEntry in this content
  • int [] 和 int* 作为函数参数的区别

    这是一道面试题 有什么区别int and int 它们都是函数的输入参数 f int a int b 我的回答 For f 它们具有相同的功能 第一个是第一个元素的开始位置a 第二个指向一个int 但是 如何在不传递其他参数的情况下区分它们
  • Git 提交针对没有分支的标签

    如果我在没有创建分支的情况下查看源代码的标记版本 Git 会指示我根本不与任何分支关联 不过 很高兴让我进行更改并检查它们 这些变化去哪里了 如果我切换回 master 它们就会消失 被 master 中的内容覆盖 而且我似乎无法再次找到它
  • 三元组组合的递归 SPARQL 查询

    我使用onspy在Python中递归运行以下查询 SELECT c WHERE c rdfs subClassOf restriction restriction owl onProperty has part owl someValues
  • 使用自定义类型(Substrate FRAME 托盘 + Polkadot/Substrate 前端)

    设想 您正在开发一个框架托盘 https substrate dev docs en knowledgebase runtime frame为定制基质 https substrate dev 在存储或事件中使用自定义类型的节点 要与自定义
  • Qt:QOpenGLWidget 中的文本渲染

    我想在 QOpenGLWidget 上绘制文本标签 我尝试使用 QPainter 来完成此任务 但没有成功 文本看起来很难看并且没有抗锯齿 它在 Qt OpenGL 2dpainting 示例中看起来也很难看 然而 在也使用 OpenGL
  • 使用 firebase admin sdk 发送通知不起作用

    我正在尝试将通知从 Node js 服务器发送到 ios 应用程序 如果我从 Firebase 控制台发送通知 它似乎可以工作 但如果使用 firebase admin sdk 从我的 node js 服务器尝试 则不起作用 我按照教程ht