执行云功能时出现此错误:
Error: TRIGGER_PAYLOAD_TOO_LARGE: This request would cause a function payload exceeding the maximum size allowed.
这是导致错误的云函数:
exports.inyectSerie = functions.database.ref('forms/{pushId}').onCreate(event => {
if (!admin.apps.length) {
admin.initializeApp();
}
var form = event.val();
var formData = {
serie: form.serie
};
admin.database().ref('series/'+form.serie).set(formData);
});
我怎么知道这是导致错误的函数?我从Firebase中删除了所有云功能,并且按预期工作。然后我放回了这个inyectSerie函数,它再次给了我错误。
这是我的火力基地结构,是“中型”节点,是数据最多的节点,具有15万条记录(对我来说听起来并不多):
+fallidas
+forms <-- This has only 20 records
+materiales
+medidores <-- This has 150,000+ records
+series
+users
如果您注意到,云功能永远不会触及medidores节点。
我搜索了错误,仅发现this other question报告了该错误,但是我认为导致该问题的云函数确实访问了数据库中的所有记录。
我唯一想到的就是我的案子的问题,那就是function.database无论如何加载整个数据库。
更新:即使将触发条件降低到最低限度(感谢James Poag),我仍然遇到相同的错误。
exports.inyectSerie = functions.database.ref('forms/{pushId}').onCreate(event => {
return null;
});