我正在尝试使用谷歌云控制台来测试云功能。下面是一个片段。
exports.requestCreated = functions.firestore
.document('users/{userId}/requests/{requestId}')
.onWrite((change, context) => {
// execute operation
});
我尝试了各种JSON数据组合。
例如{"userId":"Xl86pqOpF9T2MAn12p24OJAfYJW2","requestId":"abc1234"}
但是我在日志中不断收到以下语句:
Request created by {userId}
未从控制台中的 JSON 数据读取实际userId
。你能帮忙吗?
这不是云函数执行的问题。这是对字符串进行硬编码的问题。
'users/{userId}/requests/{requestId}'
是一个硬编码字符串。Node.js 不会自动将 {userId}
替换为变量 userId
的值。
在之前的 SO 帖子之后,使用模板字符串尝试类似的东西:
`users/${userId}/requests/${requestId}`
请注意,它由反引号 (') 括起来,而不是单引号 (')。
这假设您已经定义了userId
和requestId
变量。您必须像这样重新构建云函数才能检索该数据。请注意,必须从event
变量中提取特定的变量值。
谢谢你,纳雷迪特。该函数适用于 Firestore,现在编写它的方式检查是否在收集请求下创建了新文档。我尝试按照您的建议替换字符串,但正如您指出的,它需要定义这些变量。我不太了解如何重组云函数,因为我使用的语法是 Firestore 文档中建议的事件检测方式。我的函数目前可以完全工作,但测试它是一个主要的痛苦。我必须通过我的移动应用程序并执行整个用户流程来测试此功能。我是 Node 的新手.js任何指导将不胜感激。