Firebase功能和多路径更新

时间:2018-04-27 15:28:59

标签: firebase firebase-realtime-database google-cloud-functions

在这件事上搜索了很多,似乎无法找到相关信息。你如何处理实时数据库的多路径更新,所以你没有达到rateLimitExceeded(你的函数的触发器,onWrite,onUpdate,onCreate,onDeleted上每100秒的触发器数量)?

我们的触发器设置如下:

exports.markersUpdate = functions.database.ref('/v1/markers/{pushId}').onWrite((change, context) => {
    const record = change.after.val();
    const fbKey = context.params.pushId;
    ...
});

我想也许我可以像这样在父节点上触发,但这会返回所有集合,而不仅仅是更新:

exports.markersUpdate = functions.database.ref('/v1/markers').onWrite((change, context) => {
    ...
});

此功能基本上会复制数据存储区的更新,以便更好地进行数据分析。这一切都很好,但我们的应用程序有时需要同时更新几百条记录,即使在Blaze计划中也会出现rateLimitExceeded错误。

有没有办法获取更新的项目列表,所以我可以在函数中处理它?<​​/ p>

1 个答案:

答案 0 :(得分:1)

云功能无法实现您的目标。云函数将单个写入作为单独的函数调用处理。没有批处理,以后没有排队写入批处理。

如果您想要一次性复制数据,最好还是编写独立程序来查询要复制的数据,并创建自己的批量更新。