【问题标题】:Triggering Google Cloud function using console使用控制台触发 Google Cloud 功能
【发布时间】:2019-11-01 00:36:06
【问题描述】:

我正在尝试使用谷歌云控制台来测试云功能。下面是一个sn-p。

exports.requestCreated = functions.firestore
    .document('users/{userId}/requests/{requestId}')
    .onWrite((change, context) => {
    // execute operation
    });

我尝试过各种 JSON 数据的组合。例如

{"userId":"Xl86pqOpF9T2MAn12p24OJAfYJW2","requestId":"abc1234"}

但我在日志中不断收到以下语句:

Request created by {userId} 

实际的userId 并未从控制台中的 JSON 数据中读取。你能帮忙吗?

【问题讨论】:

  • userId 来自哪里?

标签: node.js google-cloud-platform google-cloud-functions


【解决方案1】:

这不是云功能执行的问题。这是对字符串进行硬编码的问题。

'users/{userId}/requests/{requestId}' 是硬编码字符串。 Node.js 不会自动将{userId} 替换为变量userId 的值。

按照this previous SO post,使用模板字符串尝试类似的操作:

`users/${userId}/requests/${requestId}`

请注意它被反引号 (`) 包围,而不是单引号 (')。

这假设您已经定义了 userIdrequestId 变量。您必须重组您的云函数like this 以检索该数据。请注意,必须从event 变量中提取特定的变量值。

【讨论】:

    【解决方案2】:

    谢谢你,纳雷迪特。该函数用于 Firestore,它现在的编写方式检查是否在集合请求下创建了新文档。我尝试按照您的建议替换字符串,但正如您所指出的,它需要定义这些变量。我不太了解如何重组云功能,因为我使用的语法是 Firestore 文档中建议的事件检测方式。我的功能目前可以完整运行,但测试它是一个很大的痛苦。我必须通过我的移动应用程序并完成整个用户流程来测试这个功能。我是 Node.js 的新手,我们将不胜感激。

    【讨论】:

      猜你喜欢
      • 2018-06-30
      • 2021-09-14
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      相关资源
      最近更新 更多