我正在使用Dialogflow和Firebase(免费计划)为Google家庭扬声器做一个动作。我想向我的服务器发送一个获取https请求以检索信息,但是失败。 我使用以下node.js代码来调用rest服务:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
const https = require('https');
https.get('https://myservicelink”, (res) => {
res.on('data', (d) => {
conv.ask(d);
});
}).on('error', (e) => {
conv.ask(e);
});
此代码在firebase外部可以正常工作,但是在将它们与firebase一起部署时不起作用。模拟器日志中没有错误(Google上的操作)。似乎没有输入https.get。怎么了?我需要其他的火力计划吗?
答案 0 :(得分:1)
免费(Spark)计划不允许将出站网络连接到任何非Google服务的站点。为了使代码正常工作,您必须升级到Flame或Blaze计划。
答案 1 :(得分:1)
是的,您需要更新为付费的plan。
我建议大火计划。尽管这确实要求您拥有信用卡,但这里有一个免费套餐,您无需为此付费。这个免费套餐对于您的初始开发和测试以及在投入生产时的一些轻量使用来说绰绰有余。 (您可以根据需要更新到Flame计划,但是在开发中它并没有那么有用,并且仍然需要使用信用卡。)
发布动作后,您就有资格成为Community Program的一部分,这将使您每月获得200美元的云积分,您可以将其应用到Firebase账单中。
(当然,您可以使用任何所需的Web服务,而不必为Firebase付费,只要您可以为公共HTTPS端点提供不是自签名的SSL证书)