В качестве предисловия позвольте мне упомянуть, что до сегодняшнего дня я никогда не использовал redux-saga
или Firebase.В настоящее время я играю вокруг, чтобы почувствовать обе технологии.
Возможно, я просто упускаю небольшую концепцию, но мне кажется, что я не могу выйти из системы для работы над моим приложением.Я подумал, что мне, вероятно, следует использовать call()
для управления побочными эффектами в саге, но ничего не поделаешь.
Вот саги, о которой идет речь:
export function* deauthenticateUser() {
yield takeLatest(DEAUTHENTICATE_REQUEST, function* () {
try {
yield call(firebase.auth().signOut)
yield put({ type: DEAUTHENTICATE })
}
catch (error) {
yield put({
type: DEAUTHENTICATE_FAILURE,
payload: error,
error: true,
})
}
})
}
Я подтвердил этот вызов firebase.auth().signout()
напрямую работает, только при использовании call()
я получаю действие ошибки.Обратите внимание, что при отправке ошибки также нет полезной нагрузки.
Я проверил в документации Firebase , и, очевидно, firebase.auth().signout()
возвращает обещание без содержимого в качестве содержания.Я начинаю задумываться, не будет ли это проблемой, может быть, redux-saga
не нравится, когда он не дает результата в обещании при использовании call()
?
Как будет обрабатываться аутентификация и особенно выходить из системы с помощьюFirebase и redux-saga
?