Таким образом, в настоящее время я пытаюсь вывести пользователя из firebase через мое приложение с помощью кнопки выхода. В моем проекте я использую реактив-редукс с реактив-редукс-огненной базой, редукс-thunk и redux-persist. Моя проблема в том, что, хотя я использовал вызов для выхода из реакции-redux-firebase, он не выходит из него.
Вот мои настройки для redux
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import {BrowserRouter} from 'react-router-dom';
import {createStore, applyMiddleware, compose} from 'redux';
import {Provider} from 'react-redux';
import allReducers from './reducers';
import thunk from 'redux-thunk';
import firebase from './Firebase';
import {persistStore, persistReducer} from 'redux-persist';
import storage from 'redux-persist/lib/storage';
import {PersistGate} from 'redux-persist/integration/react';
import {ReactReduxFirebaseProvider, getFirebase} from 'react-redux-firebase';
const persistConfig = {
key: 'root',
storage,
whitelist: [],
blacklist: ['firebase', 'firestore']
}
const persistedReducer = persistReducer(persistConfig, allReducers)
const store = createStore(
persistedReducer,
compose(
applyMiddleware(thunk.withExtraArgument({getFirebase})),
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
));
const persistor = persistStore(store);
const rrfConfig = {
userProfile: 'users',
useFirestoreForProfile: true
};
const rrfProps = {
firebase,
config: rrfConfig,
dispatch: store.dispatch,
}
ReactDOM.render(
<Provider store={store}>
<ReactReduxFirebaseProvider {...rrfProps}>
<BrowserRouter>
<PersistGate persistor={persistor}>
<App />
</PersistGate>
</BrowserRouter>
</ReactReduxFirebaseProvider>
</Provider>,
document.getElementById('root')
);
serviceWorker.unregister();
Вот мой компонент, в котором я пытаюсь выйти из системы
import React from 'react';
import {useFirebase} from 'react-redux-firebase';
const NavBar = ({history}) => {
const firebase = useFirebase();
const handleSignout = () => {
firebase.logout().then(history.push('/login'));
}
return (
<div>
<button onClick={handleSignout}>Sign out</button>
</div>
)
}
export default NavBar;
Из того, что я прочитал, вызов выхода из этой установки должен стереть хранилище, поэтому я пытаюсь поддерживать состояние других моих состояний (не включая firebase /firestore).
Если бы кто-то мог пролить свет на ситуацию, я бы оценил. Спасибо!