gpt4 book ai didi

firebase - Redux-saga firebase onAuthStateChanged eventChannel

转载 作者:行者123 更新时间:2023-12-01 19:57:08 27 4
gpt4 key购买 nike

如何在 redux saga 中处理 firebase auth 状态观察者?

firebase.auth().onAuthStateChanged((user) => {

});

我想在我的应用程序启动时运行APP_START saga,它将运行firebase.auth().onAuthStateChanged观察者,并根据回调运行其他saga。

据我了解 eventChannel 是正确的方法。但我不明白如何使其与 firebase.auth().onAuthStateChanged 一起使用。

有人可以展示如何将 firebase.auth().onAuthStateChanged 放入 eventChannel 中吗?

最佳答案

您可以使用eventChannel 。下面是一个示例代码:

function getAuthChannel() {
if (!this.authChannel) {
this.authChannel = eventChannel(emit => {
const unsubscribe = firebase.auth().onAuthStateChanged(user => emit({ user }));
return unsubscribe;
});
}
return this.authChannel;
}

function* watchForFirebaseAuth() {
...
// This is where you wait for a callback from firebase
const channel = yield call(getAuthChannel);
const result = yield take(channel);
// result is what you pass to the emit function. In this case, it's an object like { user: { name: 'xyz' } }
...
}

完成后,您可以使用 this.authChannel.close() 关闭 channel 。

关于firebase - Redux-saga firebase onAuthStateChanged eventChannel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51672715/

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