【发布时间】:2018-04-01 13:11:20
【问题描述】:
我正在尝试在我的 Firebase 数据库中添加一个函数,该函数会在其他两个属性发生变化时创建/更新它们的组合属性。
模型是这样的:
database/
sessions/
id/
day = "1"
room = "A100"
day_room = "1_A100"
到目前为止我的功能:
exports.combineOnDayChange = functions.database
.ref('/sessions/{sessionId}/day')
.onWrite(event => {
if (!event.data.exists()) {
return;
}
const day = event.data.val();
const room = event.data.ref.parent.child('room').data.val();
console.log(`Day: ${day}, Room: ${room}`)
return event.data.ref.parent.child("day_room").set(`${day}_${room}`)
});
exports.combineOnRoomChange = functions.database
.ref('/sessions/{sessionId}/room')
.onWrite(event => {
if (!event.data.exists()) {
return;
}
const room = event.data.val();
const day = event.data.ref.parent.child('day').data.val();
console.log(`Day: ${day}, Room: ${room}`)
return event.data.ref.parent.child("day_room").set(`${day}_${room}`)
});
但它抛出了这个错误:
TypeError: 无法读取未定义的属性“val”
我正在关注 Firebase 函数入门 (Add the makeUppercase() function) 中的第一个示例,这就是它为了达到实体引用所做的:
event.data.ref.parent
我是否错误地使用了child() 函数?有什么想法吗?
【问题讨论】:
标签: javascript firebase-realtime-database google-cloud-functions