我有一个小型firebase应用程序,当发生另一个更改时(例如,特定属性已将其值更改为"listen"(,我想在其中添加一个更改侦听器(Db触发器(,然后在"触发器值"再次更改时将其删除。有可能吗?
exports.liveLessonPracticeMonitor = functions.database.ref('/some/property/path')
.onWrite((change, context) => {
if (!change.before.exists() && change.after.val() === 'listen') {
// Can I do it here ?
// start another listener.
functions.database.ref('/some/other/property/path')
.onWrite((otherChange, otherContext) => {
// my code
}
} else if (change.before.val() === 'listen' && change.after.val() === 'stop') {
// stop listening what I've subscribed to two lines above
// How to do that?
}
return null
})
不,这是不可能的。无法通过编程方式添加或删除触发器。它们必须从index.js导出,并使用Firebase CLI进行部署。
我认为这是不可能的,但如果你试图根据你得到的输入来做一些事情,你总是可以添加if-else
语句来完成。如果你只是不想做任何事情,你可以在最后一部分添加console.log('Invalid Input')
。因此,实际的触发器只是记录一条语句,而不是做任何其他事情。。。