Firebase 的云功能 - getaddrinfo EAI_GAIN site.com:443 [重复]
Posted
技术标签:
【中文标题】Firebase 的云功能 - getaddrinfo EAI_GAIN site.com:443 [重复]【英文标题】:Cloud Functions for Firebase - getaddrinfo EAI_GAIN site.com:443 [duplicate] 【发布时间】:2020-09-04 05:10:01 【问题描述】:所以我现在正在使用 firebase 一段时间,我已经阅读了一些其他主题,这确实意味着您必须升级到付费计划。 但是,我在本地使用 http 并且效果很好。在服务器上它不起作用并抛出: 错误:getaddrinfo EAI_AGAIN site.com:443
我没有提出外部请求,我唯一能想到的是它在云功能和 Firebase 托管之外?这算不算外挂? 我只是在 Firebase 的托管端调用/请求页面。没有任何外部页面。
是什么导致服务器出现此错误,建议的修复方法是什么?
此代码示例来自云函数的Node.js:main。
var client = http;
client = (req.secure) ? https:client;
// console.log(client)
// const http = new XMLHttpRequest();
function httpRequest(params, postData)
return new Promise(function(resolve, reject)
console.log('params' + params)
var req = client.request(params, function(res)
// reject on bad status
if (res.statusCode < 200 || res.statusCode >= 300)
return reject(new Error('statusCode=' + res.statusCode));
// cumulate data
var body = [];
res.on('data', function(chunk)
body.push(chunk);
);
// resolve on end
res.on('end', function()
try
body = Buffer.concat(body).toString();
catch(e)
reject(e);
resolve(body);
);
);
// reject on request error
req.on('error', function(err)
// This is not a "Second reject", just a different sort of failure
reject(err);
);
if (postData)
req.write(postData);
// IMPORTANT
req.end();
);
【问题讨论】:
我不能给你一个公开的支持,因为我没有要求的 15 分... 【参考方案1】:如果您收到此错误:
错误:getaddrinfo EAI_AGAIN site.com:443
您正在尝试从 Cloud Functions 代码中访问 site.com
,这要求您的项目采用付费计划。 Cloud Functions 使用(相当简单的)白名单/正则表达式来检测对 Google API 的调用,而您网站的自定义域肯定不会出现在该列表中。
如果 site.com
托管在 Firebase 上,您可能需要尝试通过其 projectid.firebaseapp.com
别名访问它,以查看它是否已列入白名单。如果不是,您可以随时file a feature request 将其添加,但暂时只能通过付费计划调用它。
【讨论】:
好的,我明白了。我只是认为从文档中并不清楚。我尝试使用 projectid 和 firebaseapp.com 但返回了相同的错误。您如何建议使用 Hosting 中的文件或函数文件夹中的文件来获取内部 html 文件并在发送给客户端之前对其进行自定义? 好的,我想通了,使用函数文件夹作为使用文件的空间。然后使用 fs.readfile 命令。有点容易。谢谢以上是关于Firebase 的云功能 - getaddrinfo EAI_GAIN site.com:443 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 的云功能 - 即使我正在为 firebase-admin 功能发出出站 http 请求,也会出现网络错误
Firebase 的云功能 - 获取当前用户 ID [重复]
如何从 Firebase Cloud 功能中提取已部署的云功能 [重复]