Есть два варианта функции.
В этом - 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 })
}