Firebase GCF HTTP请求,错误:超出配额(函数调用中的CPU分配:每天)

Firebase GCF HTTP请求,错误:超出配额(函数调用中的CPU分配:每天),firebase,google-cloud-functions,Firebase,Google Cloud Functions,我目前正在使用Firebase云函数,通过函数执行HTTP请求。HTTP请求由3G模块完成,我需要始终读取数据库中的值更改 该系统将用于一个应用程序中,只要数据库发生变化,我就应该通知3G模块,因此目前我正在使用HTTP请求进行此操作 exports.moduleRequest = functions.https.onRequest((req, res) => { var change = admin.database().ref('/userInfo'); ////Once the

我目前正在使用Firebase云函数,通过函数执行HTTP请求。HTTP请求由3G模块完成,我需要始终读取数据库中的值更改

该系统将用于一个应用程序中,只要数据库发生变化,我就应该通知3G模块,因此目前我正在使用HTTP请求进行此操作

exports.moduleRequest = functions.https.onRequest((req, res) => {
 var change  = admin.database().ref('/userInfo');
 ////Once there is a change in  any userInfo child, do something
 change.once('child_changed', (snapshot) =>{
   res.send(snapshot.val());
 });
});
这工作得非常好,问题是我让HTTP请求保持打开状态,直到数据库发生变化,所以这将在大约60分钟内消耗Firebase提供的配额

Error: quota exceeded (CPU allocation in function invocations : per day); 
check and increase your quota at https://console.cloud.google.com/iam-
admin/quotas?project=pass-
e098f&service=cloudfunctions.googleapis.com&usage=ALL. Function killed.

您知道是否有其他方法可以让该系统工作吗?

我发现解决问题的最简单和最好的方法是使用,因为它允许我通过HTTP get请求进行流式处理。它使用我的SIMCOM SIM5320 3G模块作为客户端,然后服务器在请求的路径上发送带有数据库更新的事件

云函数不太适合长时间的HTTP请求,比如长时间轮询。函数运行的每一秒都会向您收取内存/CPU时间的费用。我建议您运行不同的基础设施(例如AppEngineFlex或ContainerEngine),或者找到一种方法来构建您的应用程序,这样它就不需要长时间的HTTP连接。