@lena_shevtsova

Как вызвать dispatch из функции-генератора внутри подписки на событие из firebase?

Есть два варианта функции.
В этом - yield нельзя вызывать там, где я хочу
function* subscribeToChatChanges () {
  firebase
  .database()
  .ref('chats')
  .on('child_added', (snapshot) => {
    yield put({ type: ADD_CHAT_TO_STORE, payload: {chatId: snapshot.key, value: snapshot.val()} })
  })
}


А в этом добавляется только одна запись. Даже, если делать массив chats, пушить туда chat и делать resolve(chats)
function* subscribeToChatChanges () {
var chat = yield call(() => {
    return new Promise((resolve, reject) => {

      firebase
      .database()
      .ref('chats')
      .on('child_added', (snapshot) => {
        var chat = {id: snapshot.key, name: snapshot.val(), messageList:[]}
        resolve(chat)
      })
    })
  })
  yield put({ type: ADD_CHAT_TO_STORE, payload: chat })
}
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы