我正在尝试利用 redux-sagas 框架中可观察到的 firebase,但如果没有 hack,我很难做到这一点。我正在尝试使用 firebase 的“onAuthStateChange”功能,如此处所示
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
} else {
// No user is signed in.
}
});
本质上,观察者在用户登录或退出时执行
在我的 firebase 实用程序文件中,我的方法如下所示:
authChanged: () =>{
return firebaseAuth.onAuthStateChanged(callback);
}
然后在我的传奇中,目前,我只是在观察者观察到某些东西时尝试登录控制台:
export function* loginState(){
Firebaseutils.authChanged(function(user){
if(user){
console.log('User logged in!')
}else{
console.log('User logged out')
}
});
}
由于未定义“回调”而失败。我本质上是在试图让观察者传递给 sagas,但它不起作用。我的解决方法是将完整的 firebase auth 对象传递给我的登录/注销 saga,然后在其中创建观察者。这有效,但似乎是一个黑客。任何帮助将不胜感激。