gpt4 book ai didi

firebase - redux-saga 和 firebase - 无法以干净的方式注销用户

转载 作者:行者123 更新时间:2023-12-04 14:21:40 25 4
gpt4 key购买 nike

作为序言,让我提一下,我在今天之前从未使用过 redux-saga 或 Firebase。我目前正在尝试体验这两种技术。

我可能只是遗漏了一个小概念,但我似乎无法退出以在我的应用程序上工作。我认为我应该使用 call() 来管理 saga 中的副作用,但没有任何效果。

这是有问题的传奇:

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() 时我才会收到错误操作。请注意,在分派(dispatch)错误时也没有有效负载。

I checked in Firebase's documentation ,显然 firebase.auth().signout() 返回一个没有任何内容的 promise 。我开始怀疑这是否不是问题所在,也许 redux-saga 不喜欢在使用 call() 时 promise 没有结果?

如何处理身份验证,尤其是使用 Firebase 和 redux-saga 进行注销?

最佳答案

根据 NULL SWEΔT 的评论,我不得不调用 yield call([firebase.auth(), firebase.auth().signOut])

这是因为 JS 的上下文以及 this 的工作方式。更多详情请阅读 thisthis (阅读 call([context, fn], ...args) 的文档)。

关于firebase - redux-saga 和 firebase - 无法以干净的方式注销用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53991007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com