FRebase Firestore onCreate 云函数事件参数未定义

2024-06-25

我尝试按照 Firebase 的文档和其他 SO 帖子访问我已成功部署的云函数的参数值。

不幸的是我仍然收到了

类型错误:无法读取未定义的属性“id”

我已经记录了 event.params 并且它输出为未定义,所以我理解这个问题,但不确定从语法上讲我应该如何导出参数值。

下面是我的js代码供参考:

exports.observeCreate = functions.firestore.document('/pathOne/{id}/pathTwo/{anotherId}').onCreate(event => {
  console.log(event.params);

  //event prints out data but params undefined...
  const data = event.data()

  var id = event.params.id;

  return admin.firestore().collection('path').doc(id).get().then(doc => {
    const data = doc.data();
    var fcmToken = data.fcmToken;

    var message = {
      notification: {
        title: "x",
        body: "x"
      },
      token: fcmToken
    };

    admin.messaging().send(message)
      .then((response) => {
        console.log('Successfully sent message:', response);
        return;
      })
      .catch((error) => {
        console.log('Error sending message:', error);
        return;
      });

      return;
  })
})

您正在使用 firebase-functions 模块的 1.0 之前的 API,但您安装的实际版本是 1.0 或更高版本。 API 在 1.0 中发生了变化。在此处阅读有关更改的信息 https://firebase.google.com/docs/functions/beta-v1-diff.

Firestore(和其他类型的)触发器现在采用第二个类型参数事件上下文 https://firebase.google.com/docs/reference/functions/functions.EventContext。这有一个属性称为params包含以前位于 event.params 中的数据。

exports.observeCreate = functions.firestore.document('/pathOne/{id}/pathTwo/{anotherId}').onCreate((snapshot, context) => {
  console.log(context.params);
  console.log(context.params.id);
});

还请阅读文档 https://firebase.google.com/docs/functions/firestore-events有关 Firestore 触发器的最新信息。

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

FRebase Firestore onCreate 云函数事件参数未定义 的相关文章

随机推荐

  • Django X-CSRFToken 已设置但仍然收到 403 禁止

    我开发了一个 Django 文件上传 API 它接收来自客户端的发布数据并将数据保存为文件 根据Django CSRF 手册 https docs djangoproject com en 1 8 ref csrf HTTP 请求标头应使用
  • HTTP 缓存的授权检查

    我有如下列出的 Web API 方法 用于REST服务 这是为了获取库存审核员的所有用户信息 只有授权的 Inventory Auditor 用户才能访问此资源 RoutePrefix api users public class User
  • 为 REST Spring HATEOAS 控制器定义资源组装器

    我正在尝试将 HATEOAS 链接添加到由 Spring REST 控制器提供服务的 JSON 资源 我发现我应该使用资源汇编器 如下所述https github com spring projects spring hateoas htt
  • 是否可以复制 Azure 网站?

    我想将现有的 共享 模式 开发 网站复制到另一个 测试 共享 模式网站 这可能吗 我知道可以使用 T SQL 命令通过 SQL Azure DB 来完成此操作 此刻我 1 创建新网站 2 跨 Dev Azure 网站的 FTP 来测试 Az
  • posix 和 linux 特定函数的 C++ 包装器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您知道有什么好的库将 posix 和 linux 函数和结构 例如套接字或文件描述符 包装到 C 类中
  • 在图像批次中随机打乱补丁

    我正在尝试创建一个transform打乱批次中每个图像的补丁 我的目标是以与其他转换相同的方式使用它torchvision trans transforms Compose transforms CenterCrop 224 transfo
  • 字符串常量之前的预期标识符

    有一个这样的程序 include
  • 当我所做的只是压缩提交时,为什么 git-rebase 会给我带来合并冲突?

    我们有一个包含 400 多个提交的 Git 存储库 其中前几十个提交需要大量的反复试验 我们希望通过将许多提交压缩为单个提交来清理这些提交 当然 git rebase 似乎是最佳选择 我的问题是它最终会产生合并冲突 而且这些冲突并不容易解决
  • 用模板替换 ng-include 节点?

    对角度有点陌生 是否有可能replace包含模板内容的 ng include 节点 例如 与 div div src div div 生成的html为 div div src div div
  • 使用finally代替catch

    我已经多次看到这种模式了 bool success false try DoSomething success true finally if success Rollback 我一直想知道 为什么这比使用 catch 进行回滚更好 try
  • 加载 ng2-table 数据表单 API

    我正在学习 Angular 2 我想使用 PHP 中的 API 数据填充 ng2 table 我有一个返回数据的服务 但我不知道如何使用服务的订阅数据填充数据变量 我正在调用服务方法 getLanguages 我的服务代码是 import
  • 表排序器,无法正确按日期排序

    如果存在空格 表排序器的行为是否会有所不同 我对 tablesorter 还很陌生 但有人要求我快速将其添加到客户网站 特别是允许他们按发布日期排序 据我所知 日期 例如 2012 年 5 月 14 日 被读取为文本 因此我需要添加一个解析
  • 错误:‘:’标记之前需要初始化程序

    我正在尝试编译一些 C 代码 可以在 Windows 上使用 Visual Studio 2012 进行编译 g 4 4 我有这段代码 const std string cnw restoreSession const std vector
  • Angular4 - 如何确保 ngOnDestroy 在离开之前完成

    我有一个对象列表 用户可以单击其中一个 然后加载一个子组件来编辑该组件 我遇到的问题是 当用户返回列表组件时 子组件必须在 ngOnDestroy 方法中进行一些清理 这需要调用服务器来对对象进行最终的 修补 有时此处理可能会有点慢 当然
  • WebDAV PROPFIND 的示例代码

    有没有任何网站或某人可以向我提供一份 PROFIND 请求示例 我尝试了 MSDN 中的 PROFIND 代码示例 但收到 400 Bad request 无法理解为什么会发生这种情况 之前发布的问题位于从 WebDav 服务器收到 400
  • 使用 VS 2010 数据库管理示例数据

    我正在使用 Visual Studio 2010 中的数据库项目来管理我的所有数据库代码 对于我的应用程序 我们将每个客户端的数据分离到他们自己的数据库副本中 并使用通用数据库将用户映射到适当的数据库 我希望在 TFS 中保留几个不同的示例
  • 如何获取已打开连接的套接字 ID/句柄/描述符? (.NET、C++、德尔福)

    我的问题已在标题中说明 我到底该怎么做呢 我有一个开放的连接 我想 劫持 它并通过它发送我的自定义消息 据我了解 这是通过套接字及其处理程序完成的 任何语言都可以 但首选 C NET 谢谢 UPDATE 我到底想要实现什么 我想为 post
  • 如何从代码获取复制状态

    我已经在 SQL Server 2005 数据库上完成了复制 现在我想从我的 GUI 显示状态 可以是 C 或其他 是否有任何方法或 API 可以让我监控复制状态 这是为了客户端确认复制正在工作 Thanks 像这样的事情 http www
  • 金钱计算,Java 和 Oracle/PL SQL 的使用比较

    大家可以对 Oracle PL SQL 和 Java 在处理货币计算时的优缺点进行很好的比较 如果您要开发一个需要处理大量资金计算的应用程序 您会使用这两者中的哪一个 为什么 这个问题并不是要引发oracle pl sql和java爱好者之
  • FRebase Firestore onCreate 云函数事件参数未定义

    我尝试按照 Firebase 的文档和其他 SO 帖子访问我已成功部署的云函数的参数值 不幸的是我仍然收到了 类型错误 无法读取未定义的属性 id 我已经记录了 event params 并且它输出为未定义 所以我理解这个问题 但不确定从语