Реализация Redux в приложении Firebase - PullRequest
0 голосов
/ 17 октября 2019

В настоящее время я разрабатываю приложение, использующее Firebase на серверной части. Я использую рецепт крючка useAuth от useHooks.com. Мне удалось сделать вызов axios в хуке useAuth, чтобы пользователь вошел в систему, но чтобы избежать технической задолженности по мере расширения проекта, мне нужно управлять аутентификацией пользователей через Redux, если это действительно лучший способ сделать это. Это.

Мой магазин в настоящее время выглядит как

import { createStore, applyMiddleware } from 'redux'
import {firestoreReducer} from 'redux-firestore'
import thunk from 'redux-thunk'
import {combineReducers} from 'redux'
import authReducer from './reducers/auth.reducer'
import {firebaseReducer} from 'react-redux-firebase'

const rootReducer = combineReducers({
  auth: authReducer,
  firestore: firestoreReducer,
  firebase: firebaseReducer
})

const storeRedux = createStore(rootReducer,applyMiddleware(thunk))

export default storeRedux

Мой файл действий

export const doLogin = (email, password) => {
  return dispatch => {
    axios
      .post(api + "/auth", {
        email: email,
        password: password
      })
      .then(response => {
        dispatch({
          type: AUTH_LOGIN,
          email: response.email
        });
      })
      .catch(error => {
        console.log("There is no user with the given username and password");
        //alert("Username does not exist");
      });
  };
};

and my reducer.
const authReducer = (state = initState, action) => {
  switch (action.type) {
    case "AUTH_LOGIN":
      console.log("login error");
      return {
        ...state,
        authError: "Login failed"
      };
    case "LOGIN_SUCCESS":
      console.log("login success");
      return {
        authError: null
      };
    default:
      return state;
  }
};

экспорт по умолчанию authReducer;

Я не уверен, что лучшеПрактика, чтобы правильно проверить аутентификацию пользователя, я использую пользовательский API, который делает вызов axios.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...