Fire上的Firebase数据库获取id

Mik*_*lis 0 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);
});
Run Code Online (Sandbox Code Playgroud)

两个第一个日志都包含相同的key(series),它实际上是附加新数据的父节点的键,而不是新数据键(以古怪的形式-adfaa123sdfasdf).最后一个日志打印一个Firebase结构,其中包含新数据以及_data属性中生成的密钥,但是无法访问它.

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

Fra*_*len 5

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

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

另请参阅有关处理数据库事件Firebase文档.