使用 Firebase 函数发出 http 请求时找不到地址
Address not found when making http request with Firebase functions
我已经使用 Dialogflow 为 Google 操作设置了一个 Firebase 函数,该函数使用 node-fetch
进行 API 调用,但是当我 运行 遇到问题时提出实际要求。即使我可以在浏览器中访问 URL,我也无法在我的函数运行时解析它。
错误:
{"message":"request to https://jsonplaceholder.typicode.com/users failed, reason: getaddrinfo ENOTFOUND jsonplaceholder.typicode.com jsonplaceholder.typicode.com:443","type":"system","errno":"ENOTFOUND","code":"ENOTFOUND"}
代码:
import * as functions from 'firebase-functions';
import fetch from 'node-fetch';
export const fetchTrainTimetable = async (): Promise<object> => {
const path = `https://jsonplaceholder.typicode.com/users`
try {
const response = await fetch(path, {method: 'GET'});
return await response.json();
} catch (error) {
return error;
}
}
为了使用 Firebase 函数发出出站请求,我是否需要在请求中包含缺少的内容?路径是什么似乎并不重要,我总是以这个错误结束。
问题是您在默认 "spark" 计划下使用 Firebase Functions,该计划是免费的,但存在无法访问 Google 以外的 Web 或网络服务的限制的。
您可以upgrade加入"blaze"计划,该计划允许网络访问,但需要您注册信用卡并收取使用费。但是,即使在 blaze 计划中,也有一个免费套餐,他们不会向您收费。此免费层通常足以进行试验、初始开发和在早期部署下使用。部署后,Google 助手会提供云积分,这也应该抵消这一点。
我已经使用 Dialogflow 为 Google 操作设置了一个 Firebase 函数,该函数使用 node-fetch
进行 API 调用,但是当我 运行 遇到问题时提出实际要求。即使我可以在浏览器中访问 URL,我也无法在我的函数运行时解析它。
错误:
{"message":"request to https://jsonplaceholder.typicode.com/users failed, reason: getaddrinfo ENOTFOUND jsonplaceholder.typicode.com jsonplaceholder.typicode.com:443","type":"system","errno":"ENOTFOUND","code":"ENOTFOUND"}
代码:
import * as functions from 'firebase-functions';
import fetch from 'node-fetch';
export const fetchTrainTimetable = async (): Promise<object> => {
const path = `https://jsonplaceholder.typicode.com/users`
try {
const response = await fetch(path, {method: 'GET'});
return await response.json();
} catch (error) {
return error;
}
}
为了使用 Firebase 函数发出出站请求,我是否需要在请求中包含缺少的内容?路径是什么似乎并不重要,我总是以这个错误结束。
问题是您在默认 "spark" 计划下使用 Firebase Functions,该计划是免费的,但存在无法访问 Google 以外的 Web 或网络服务的限制的。
您可以upgrade加入"blaze"计划,该计划允许网络访问,但需要您注册信用卡并收取使用费。但是,即使在 blaze 计划中,也有一个免费套餐,他们不会向您收费。此免费层通常足以进行试验、初始开发和在早期部署下使用。部署后,Google 助手会提供云积分,这也应该抵消这一点。