使用 Firebase 侦听器时未调用生成器函数

Generator function not called when using Firebase listner

我正在使用 Firebase 和 Redux saga,并希望在 firebase 的侦听器上附加生成器,如下所示。

var ref = firebase.database().ref(`path`)
ref.on('value',function* (snapshot){

    yield put({ type: 'SOME_ACTION' })

当我运行这个程序时,没有调用回调函数。如果我删除 *,它将被调用。 有什么解决方法吗?

Saga 效果并非在所有生成器中都有效。仅在 运行 中使用 sagaMiddleware.runSaga() 或使用 callforkspawn 等效果

解决您的问题的一种方法是使用事件通道,请参阅 https://redux-saga.js.org/docs/advanced/Channels.html#using-the-eventchannel-factory-to-connect-to-external-events