You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dialogflow调用Firebase函数Webhook报错,请求排查并给出修复方案

问题排查与修复

我看了你的代码和问题描述,能找出几个关键问题导致Webhook报错:

1. 模块拼写错误

你代码里写的是 const requst = require('request'); —— 这里的 requst 是拼写错误,应该是 request。这个错误会导致Node.js找不到对应模块,直接抛出加载失败的错误,这很可能是日志里报错的核心原因之一。

如果你的代码里其实没用到request模块(目前看你的意图处理逻辑里确实没用到它),更干脆的做法是直接删掉这一行,减少不必要的依赖。

2. 未将请求交给Dialogflow实例处理

你的Firebase函数创建了dialogflow的app实例,但最后没有让这个实例处理传入的请求并生成响应。在exports.webhook的函数末尾,必须加上 app(request, response); 这一行,否则请求得不到正确处理,自然会返回错误。

3. 可选优化:Firebase Admin初始化方式

现在Firebase Admin SDK推荐的初始化方式不需要传入functions.config().firebase参数,直接写 admin.initializeApp(); 即可,旧写法虽然可能兼容,但更推荐使用最新的初始化方式。

修复后的完整代码

const functions = require('firebase-functions');
const admin = require('firebase-admin');
// 如果没用到request模块,直接删掉下面这行
// const request = require('request');
const {
  dialogflow, BasicCard, BrowseCarousel, BrowseCarouselItem,
  Button, Carousel, Image, LinkOutSuggestion, List, MediaObject,
  Suggestions, SimpleResponse,
} = require('actions-on-google');

const intentSuggestions = [
  'Basic Card', 'Browse Carousel', 'Carousel', 'List', 'Media', 'Suggestions', 'Table',
];

admin.initializeApp();
var firestore = admin.firestore();
const randomize = require('randomatic');

exports.webhook = functions.https.onRequest((request, response) => {
  const app = dialogflow({ debug: true });

  app.intent('Default Welcome Intent', (conv) => {
    conv.ask(new SimpleResponse({
      speech: 'Hi there!',
      text: 'Hello there!',
    }));
    conv.ask(new SimpleResponse({
      speech: 'I can show you basic cards, lists and carousels ' +
        'as well as suggestions on your phone.',
      text: 'I can show you basic cards, lists and carousels as ' +
        'well as suggestions.',
    }));
    conv.ask(new Suggestions(intentSuggestions));
  });

  // 关键:让app处理请求并返回响应
  app(request, response);
});

修复完这些问题后,重新部署你的Firebase函数,然后再测试Dialogflow的Webhook调用,应该就能正常工作了。

内容的提问来源于stack exchange,提问作者user3872094

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:55:56