Node.js 连接到Firebase函数的Google操作无法调用外部api?

Node.js 连接到Firebase函数的Google操作无法调用外部api?,node.js,firebase,google-cloud-platform,xmlhttprequest,actions-on-google,Node.js,Firebase,Google Cloud Platform,Xmlhttprequest,Actions On Google,目前,我有一个使用ActionSDK和NodeJS构建的google action,其中实现托管在Firebase云函数上。我现在想做的就是把google action的输入传递给一个外部api,但它似乎无法发送 'use strict'; const {actionssdk} = require('actions-on-google'); const functions = require('firebase-functions'); const XMLHttpRequest = requi

目前,我有一个使用ActionSDK和NodeJS构建的google action,其中实现托管在Firebase云函数上。我现在想做的就是把google action的输入传递给一个外部api,但它似乎无法发送

'use strict';

const {actionssdk} = require('actions-on-google');
const functions = require('firebase-functions');
const XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;

const app = actionssdk({debug: true});


app.intent('actions.intent.MAIN', (conv) => {
  conv.ask('Hello, this is Patrick.');
});

app.intent('actions.intent.TEXT', (conv, input) => {

  var xhr = new XMLHttpRequest();
  xhr.open("GET", "https://www.googleapis.com/customsearch/v1?key={apikey}&cx={searchID}&q=" + input, true);
  xhr.send();

  xhr.onreadystatechange = function () {
    conv.ask(this.readyState.toString());
  }


exports.myFunction = functions.https.onRequest(app);
但这总是给我一个回答:

我的测试应用程序现在没有响应。请稍后再试

并在错误选项卡中显示:

{ “错误”:“未设置响应。这是否用于未作为承诺返回给意图处理程序的异步调用?” }


我不知道为什么会发生这种事,因为我对这整件事还不熟悉。感谢您的帮助

如果您使用的是firebase的免费层,则不允许您使用外部API。您需要启用计费并升级到付费层才能访问

更新
您可能需要使用Promise返回响应。退房问题

我现在正在忙着更新我的答案。试着用承诺。