Firebase 的云功能 - 即使我正在为 firebase-admin 功能发出出站 http 请求,也会出现网络错误

Posted

技术标签:

【中文标题】Firebase 的云功能 - 即使我正在为 firebase-admin 功能发出出站 http 请求,也会出现网络错误【英文标题】:Cloud Functions for Firebase - Getting Network error even though I'm making outbound http request for firebase-admin functionality 【发布时间】:2017-08-31 20:30:04 【问题描述】:

我有一个函数文件,我目前要做的就是访问 Firebase auth() 功能以根据电子邮件检查用户是否存在,然后获取他们的 uid。

我有一个 Angular 2 应用程序,我在其中运行一个 http 请求来调用该函数,但每当我尝试运行它时,我都会收到此错误:

Billing account not configured. External network is not accessible and quotas are severely limited. Configure billing account to remove these restrictions

这是我的代码:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

/**
 *  Function to get a user by email
 */
exports.getUserByEmail = functions.https.onRequest((req, res) => 
  console.log('req', req);
  return admin.auth().getUserByEmail(req.query.email);
);

Spark 计划不允许这种类型的事情吗?我仍在开发我的应用程序,这是我现在唯一需要工作的事情,我宁愿不必为了使用这个小功能而立即开始付费。有什么我可以做的吗?

提前致谢!

【问题讨论】:

Cloud Functions for Firebase - Billing account not configured的可能重复 【参考方案1】:

在 Spark 计划上执行时,所有函数都会出现该警告消息。这只是一个警告 - 如果您不自己进行任何出站网络,则可以忽略它。

我们正在考虑更改或删除该消息,以减少混乱。

管理 SDK 应该可以正常工作。但是,您的函数没有正确返回响应,因此它似乎不会做任何事情。 HTTP triggers(请阅读那些文档)必须向客户端发送响应才能正常终止。它们不像其他类型的函数那样返回 Promise。

【讨论】:

我希望发送电子邮件不被视为出站网络...? @cuddlecheek 这取决于路由邮件的主机。是gmail吗?那是一个谷歌目的地,并没有被 Spark 计划阻止。它是谷歌之外的第三方邮件服务器吗? Spark 上不允许。 我正在我的 http 触发方法中进行地理触发调用,以计算两个位置点之间的距离。这是否被视为出站网络呼叫? @TGMCians 我相信 geofire 只是进行常规数据库查询,应该没问题。 @DougStevenson,Apple 推送通知服务是否被视为呼出电话?我收到应用程序没有收到推送通知的问题,这是原因吗?谢谢【参考方案2】:

要能够在 Firebase 云功能中发出外部请求,您必须先选择一个计划。 console.firebase.google.com 中的 Flame 或 Blaze 计划

【讨论】:

我在使用 Blaze - 我仍然收到此警告。

以上是关于Firebase 的云功能 - 即使我正在为 firebase-admin 功能发出出站 http 请求,也会出现网络错误的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 的云功能 - getaddrinfo EAI_GAIN site.com:443 [重复]

导出 Firestore 备份数据的云功能。使用 firebase-admin 或 @google-cloud/firestore?

Firebase 的云功能:“错误:无法处理请求”

如何在 Firebase 的云功能中添加版本

Firebase 的云功能 - 获取当前用户 ID [重复]

如何从 Firebase Cloud 功能中提取已部署的云功能 [重复]