我有Firebase的火花计划,所以有免费的。我试图将一个csv文件写入我的Firestore Db。它有13500条记录,并且在50-100次写入云函数后,我称之为429(请求过多)错误。我将每条记录发送到我的Firebase Cloud函数,该函数将数据写入文档。在每个请求之间,我等待5秒。有人知道问题出在哪里吗?
export const WriteToDb = functions.region("europe-west1").https.onRequest((request, response) => {
try {
var recievedData:string = request.body + '';
var splittedData = recievedData.split(",");
var data = {City: splittedData[0],
Zipcode: splittedData[1],
State: splittedData[2]};
const promise = admin.firestore().collection("Cities").doc().set(data);
promise.then( () => {
response.send("worked");
}).catch(() => {
console.log("Failed in PROMISE");
response.send("crashed");
});
}
catch (error) {
console.log(error);
response.send("Failed before DB connecection");
}
答案 0 :(得分:2)
选中https://console.firebase.google.com/
功能->日志
显示吗? 未配置结算帐户。无法访问外部网络,并且配额受到严格限制。配置结算帐户以消除这些限制
功能->健康状况
错误:超出配额(配额组'FunctionCallsNonbillable'超出了配额,并为消费者'project_number:'限制了服务'cloudfunctions.googleapis.com'的'每100秒的函数调用'。);要增加配额,请在https://console.cloud.google.com/billing?project=的项目中启用计费功能。功能无法执行。
我的云功能发生了同样的问题,启用计费后,问题已解决。
或尝试根据Google文档使用increate Quota限制
Google Firebase节流阀请求。 请参考https://cloud.google.com/service-infrastructure/docs/rate-limiting
配额指标
度量是用于随时间测量某个值的命名计数器。例如,服务接收的HTTP请求数是一个度量。配额指标是用于配额和速率限制目的的指标。当一项服务发生活动时,一个或多个配额指标可能会增加。当指标值达到预定义的配额限制时,服务应以429错误拒绝该活动。