Firebase函数可以在模拟器中使用,但不能在浏览器中使用



这是firebase中的函数:

exports.getProducts = functions.https.onRequest((request, response) => {
const url = `https://www.xxxxxxxxxxxxx`;
const options = {
uri: url,
headers: { 'User-Agent': 'test' },
transform: (body) => cheerio.load(body)
}
rp(options)
.then(($) => {
const listings = $('.cards').first().find(".link");
var message = [];
for (var k=0;k<listings.length;k++)
message.push({"title":$(listings[k]).attr('title'),"url":$(listings[k]).attr('href')});
console.log(message)// ******** prints the right result
return message;   //*** how to return it ? and where ?
})
.catch((err) => response.status(400).send(err))
});

当我使用shell时,它会打印需要打印的内容。

当我访问函数URL时,什么都没有发生。

  1. 我想我没有返回数据-我将如何返回此消息
  2. 我将如何向它发送string参数,并在此函数中访问

您的代码需要显式地向客户端发送响应。仅仅从回调中返回是不够的。你需要这样的东西:

response.json(message);

我建议阅读HTTP触发器的文档,看看它们应该如何工作的一些示例。

相关内容

最新更新