Я использую Firebase для проверки подлинности через Facebook или Google.То, что я действительно не понимаю, это причина, по которой мой магазин не обновляется.
Ниже приведен пример моего кода:
import { createStore } from 'redux';
import {app, facebookProvider, googleProvider } from './../config/config';
const initialState = {
SCREEN_CURRENT: "login",
authenticated: false
}
const reducer = (state = initialState, action) => {
console.log('reducer', action);
switch(action.type){
case "AUTH_LOGIN_FACEBOOK":
state = {
...state,
authenticated: true
}
app.auth().signInWithPopup(facebookProvider)
.then((user, error) => {
if(error){
console.log("Unable to login with Facebook!");
} else {
console.log("Logged in succesfully");
state = Object.assign({}, state, {
authenticated: true
});
}
}).catch((error) => {
if(error){
console.log("Error from Facebook: " + error.message);
}
});
break;
case "AUTH_LOGIN_GOOGLE":
app.auth().signInWithPopup(googleProvider)
.then((user, error) => {
if(error){
console.log("Unable to login with Google!");
} else {
console.log("Logged in succesfully");
return Object.assign({}, state, {
authenticated: true
});
}
}).catch((error) => {
if(error){
console.log("Error from Google: " + error.message);
}
});
break;
default:
break;
}
return state;
}
const store = createStore(reducer);
store.subscribe(() => {
console.log("Store updated", store.getState());
});
export default store;
Может кто-нибудь объяснить мне, почему мой магазин не обновляется, даже если я изменил свое состояние аутентификации на true при успешном входе в систему (что произошло)?
Я не могу понять, почему.
Когда я нажимаю кнопку, которая вызывает действие "AUTH_LOGIN_FACEBOOK", магазинобновляется.Однако не когда я изменяю состояние аутентифицированного на истинное.Как получить магазин для обновления?