初めて質問させていただきます。
Google Homeで、ある対戦ゲームのキャラクターに対する不利なキャラクターを教えてくれるアプリを作っています。
DialogflowのWebhook(firebase)を通して処理しています。

index.js内の処理内容としては、「<キャラクター名>のカウンター」で音声入力した際に、
こちらの統計サイト(http://jp.op.gg/champion/<キャラクター名>/statistics/)にある
Weak against欄の一番上のキャラクター名をスクレイピングで取得して、google assistantに返すというものになります。

スクレイピングはcheerio-httpcliというモジュールを使っています。

しかし、スクレイピングでの取得処理部分であるfetchメソッドが処理されていないようで、
fetchメソッド内のapp.askが動いておらず、変数nameの中身がundefinedとなっています。
なお、firebase deploy --only functions コマンドではエラーは出ていません。

スクレイピング処理の部分のみを抜き出して、別ファイルでコンソール出力した際はうまくできたのですが、
actions on googleもしくはfirebase と組み合わせるとうまくいかないです。
ご教授お願いいたします。

index.js

'use strict';

process.env.DEBUG = 'actions-on-google:*';
const { DialogflowApp } = require('actions-on-google');
const functions = require('firebase-functions');

exports.yourAction = functions.https.onRequest((request, response) => 
{
  const app = new DialogflowApp({request, response});

  const WELCOME_INTENT = 'input.welcome';
  const UNKNOWN_INTENT = 'input.unknown';
  const END_INTENT = 'default_end_intent';
  const CHAMPION_COUNTER = 'Champion_Counter';

  var client = require('cheerio-httpcli');

  console.log('Request headers: ' + JSON.stringify(request.headers));
  console.log('Request body: ' + JSON.stringify(request.body));

  // Fulfill action business logic
  function responseHandler (app) {
    // Complete your fulfillment logic and send a response
    let intent = app.getIntent();

    switch (intent) {
        case WELCOME_INTENT:
            app.ask('ようこそ、LoLSmartCallへ');
            break;

        case UNKNOWN_INTENT:
            app.ask('もう一度お願いします');
            break;

        case END_INTENT:
            app.tell('ありがとうございました');
            break;

        case CHAMPION_COUNTER:
            let requestChampionName = app.getArgument('LoL-Champions'); //音声入力されたキャラクター(チャンピオン)の名前が入る
            let name = counterResearch(requestChampionName);
            app.ask(requestChampionName + 'の苦手なチャンピオンは、' + name + 'です。');

            break;

    }
  }

  app.handleRequest(responseHandler);

  function counterResearch(requestName) {
      var url = 'http://jp.op.gg/champion/' + requestName + '/statistics/';
      //ここまで動いていること確認済み

      //TODO ⇓ここから動かない
      client.fetch(url, {}, function(err, $, res, body){

          $('.SideContent').each(function (idx){
              //console.log('Weak against');
              app.ask('動いています');    //動かない
              var championName = $(this).find('.ChampionName').eq(0).text();
          });
          return championName;
      });
  }
});

シミュレータ