我正在尝试使用onWrite方法在Firebase上模仿插入触发器。插入是通过POST请求完成的,因为我正在测试它(我发现检查数据库触发器的最简单方法)。触发器包括将Firebase生成的ID作为新属性写入插入的数据中。
我的云功能是:
exports.onNewSeries = functions.database.ref('/series').onWrite(event => {
"use strict";
console.log(event.data.key);
console.log(event.data.current.key);
console.log(event.data.current);
});
两个第一个日志都包含相同的密钥(series
),它实际上是附加新数据的父节点的密钥,而不是新数据密钥(以{{1}的奇怪形式})。最后一个日志打印一个Firebase结构,其中包含新数据以及_data属性中生成的密钥,但它无法访问。
虽然这可以在请求后手动完成,但我还没有看到它以数据库触发方式自动完成。
答案 0 :(得分:5)
要获取生成的密钥,请对特定子项启用函数触发器:
exports.onNewSeries = functions.database.ref('/series/{id}').onWrite(event => {
console.log(event.params.id);
});