使用带有GET的查询字符串在本地测试Firebase HTTP Cloud功能

时间:2018-04-11 00:53:22

标签: node.js firebase testing google-cloud-functions firebase-cli

我在Firebase上有一个HTTP Cloud功能。我可以使用没有查询字符串的GET方法成功调用此tutorial之后的函数。

> test.get() 

我的问题是如何使用查询字符串测试HTTP函数?如何将其传递给调用调用?

我在shell上尝试了这个

> test.get({"name":"test"})

在我的index.js上我尝试打印名称:

exports.test= functions.https.onRequest((req, res) => {
    console.log(req.query.name);
});

它不起作用并返回undefined

1 个答案:

答案 0 :(得分:6)

您引用的文档说明了这一点:

  

要在shell中调用HTTPS函数,其用法与request NPM模块相同,但将request替换为您要模拟的函数的名称。

请注意request模块文档的链接。您必须使用其API来发出测试请求。在该链接页面上,您正在寻找更具体的文档:

https://www.npmjs.com/package/request#requestoptions-callback

您要注意的是第一个名为“options”的参数的属性。此对象具有许多影响请求的潜在属性。要发送查询字符串,您应该使用qs属性,如下所示:

test.get({ qs:{ name:"foo" } })

这会将name查询字符串参数设置为foo以进行测试调用。