作为序言,请允许我提及我之前从未使用过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()
时,我才能执行错误操作。请注意,错误被分派时也没有有效载荷。
I checked in Firebase's documentation,并且显然firebase.auth().signout()
返回的承诺不包含任何内容。我开始怀疑这是否不是问题,也许redux-saga
不喜欢在使用call()
时没有任何承诺?
一个人如何处理身份验证,尤其是使用Firebase和redux-saga
注销?