Firebase云功能DeltaSnapshot父访问

时间:2017-05-11 21:20:22

标签: database firebase parent-child snapshot google-cloud-functions

我找不到任何方法来查询数据库以获取DeltaSnapshot的父值,因此我尝试将事件设置为在整个数据库中的任何内容发生更改时触发。这似乎仍然正确触发onWrite,但尝试返回任何子项的内容或键返回null值。我在日志中打印了DeltaSnapshot的值,并且整个数据库都在那里,并且日志记录hasChild确认具有我查询名称的子项确实存在于数据库中,因此我不确定是什么当我要求任何特定孩子的价值/关键时,我只是做错了。另外,我想知道是否有任何方法可以做我原本想要的东西,只是跳到DeltaSnapshot的父母,这样我就不必每次在数据库中的任何内容发生变化时触发onWrite。

更新:我不能使用ref或adminRef而不会导致错误。我目前正试图获得这样的价值:

const nameIn;
nameIn = event.data.current.child('name/{pushId}').val();
console.log('User ID:', nameIn);

这可以防止我收到错误,但日志始终返回null。我唯一的猜测是,它与异步运行到数据库的函数有关,但我不确定。

1 个答案:

答案 0 :(得分:0)

使用event.data.adminRef可以不受限制地访问数据库,而不是将触发器设置为整个数据库。您可以在the Cloud Functions Database documentation中找到有关adminRef的更多信息。