Fire上的Firebase数据库获取id

时间:2017-04-19 19:53:36

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

我正在尝试使用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属性中生成的密钥,但它无法访问。

虽然这可以在请求后手动完成,但我还没有看到它以数据库触发方式自动完成。

1 个答案:

答案 0 :(得分:5)

要获取生成的密钥,请对特​​定子项启用函数触发器:

exports.onNewSeries = functions.database.ref('/series/{id}').onWrite(event => {
    console.log(event.params.id);
});

另见Firebase documentation on handling database events