在一个本机应用程序中,我有一个redux动作,它调用Firestore的onSnapshot
。看起来像这样:
redux动作:
export const onAccountChange = (uid, isUnsubscribe) => {
console.log('Firestore Read (listener): actions/account => onAccountChange()');
return (dispatch) => {
let unsubscribe = firebase.firestore().collection('users').doc(uid).onSnapshot((doc) => {
dispatch({ type: types.LOAD_ACCOUNT, payload: doc.data() });
if (doc.get('role') == 'Influencer') {
onProfileChange(uid);
}
});
if ( typeof isUnsubscribe != "undefined" && isUnsubscribe == true) {
unsubscribe()
}
};
};
我退出Firebase身份验证时遇到的问题是,出现错误:Firestore/Permission-denied
我不确定这是否是在redux动作中分离侦听器的可行方法。但这是我在注销时调用的redux动作:
export const logoutUser = (uid, role) => {
return (dispatch) => {
onProfileChange(uid, true);
return new Promise((resolve, reject) => {
firebase
.auth()
.signOut()
.then(() => {
dispatch({ type: types.RESET_APP });
console.log('Dispatching types.RESET_APP');
resolve();
})
.catch((error) => reject(error.message));
});
};
};
在这种情况下如何分离监听器? (不要粘贴firestore dox,我已经阅读了它们,它们并没有帮助我了解如何解决此问题)