Tengo un socket simple y una API de firebase. Cuando cambia un valor en mi base de datos de Firebase, quiero emitir un evento desde mi servidor de socket.
Hasta ahora tengo algo como:
io.on("connection", (socket) => { socket.on('resource', ({ resourceId }) => { const ref = db.ref(`resources/${resourceId}`); ref.on('child_changed', (snapshot) => { const resource = snapshot.val() socket.emit(resource) }) }) }); Sin embargo, mi devolución de llamada child_changed no parece ser llamada aquí porque supongo que el oyente se destruye después de que finaliza el evento socket.on .
En código psuedo, quiero hacer algo como esto:
// add some form of listener for resource id addListnerSomehow(); // create firebase ref for that resourceId const ref = db.ref(`resources/${resourceId}`); // emit new value via socket when resource value changes ref.on('child_changed', (snapshot) => { const resource = snapshot.val() socket.emit(resource) })¿Cómo puedo emitir un evento a oyentes específicos dentro de una devolución de llamada como esta?