推送获取 id 时的 Firebase 数据库

Firebase database on push get id

我正在尝试使用 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),它实际上是附加新数据的父节点的键,而不是新数据键(以[=的古怪形式) 12=]).最后一条日志打印了一个 Firebase 结构,其中包含新数据以及在 _data 属性 中生成的密钥,但是它不可访问。

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

要获取生成的密钥,请使函数在特定子项上触发:

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

另见 Firebase documentation on handling database events