Функция Firebase работает в симуляторе, но не в браузере - PullRequest
0 голосов
/ 05 мая 2020

это функции в 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 - и доступ к внутри этой функции?

1 Ответ

0 голосов
/ 05 мая 2020

Ваш код должен явно отправлять ответ клиенту. Просто вернуть его из обратного вызова недостаточно. Вам понадобится что-то вроде этого:

response.json(message);

Я предлагаю прочитать документацию для триггеров HTTP , чтобы увидеть некоторые примеры того, как они должны работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...