Администраторы создают пользователя и аутентификацию, используя Reactjs и Firebase - PullRequest
0 голосов
/ 24 октября 2018

Я новичок в Reactjs.Я пишу страницу для администраторов для создания пользователей, информация о пользователях хранится в пожарном депо, и мне нужно аутентифицировать этого пользователя при аутентификации.В разделе аутентификации я использовал функцию admin.auth () createUser, я не знаю функцию аутентификации, которую я пишу true или false.Когда я удаляю эту функцию аутентификации и использую ее только для сохранения информации о пользователе, она работает.Но я хочу просто сохранить информацию о пользователе и аутентифицировать этого пользователя.

Это мой код

Этот userActions.js

import admin from "./fbAdmin";   
 export const createUser = (user) => {
    return(dispatch, getState, { getFirebase, getFirestore }) => {
        const firestore = getFirestore();

        admin.auth().createUser(
            user.email,
            user.password
        ).then((resp) => {
            return firestore.collection('users').doc(resp.user.uid).set({
                ...user,

            })
        }).then(() => {
            dispatch({ type: "CREATE_USER", user });
        }).catch(err => {
            dispatch({ type: 'CREATE_USER_ERROR', err });
        });
    }
}

Этот fbAdmin.js

var admin = require('firebase-admin');
var config = { ...}
admin.initializeApp(config);
export default admin;

и createUser.js

import React, { Component } from 'react'
import { createUser } from './../../store/actions/userActions';
import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom'
class CreateUser extends Component {
    state = {
        email: "",
        password: "",
        userFirstName: "",
        userLastName: "",
        channel: "",
    }
    handleChange = (e) => {
        this.setState({
        [e.target.id]: e.target.value
        })
    }
    handleSubmit = (e) => {
        e.preventDefault();
        this.props.createUser(this.state);
        this.props.history.push('/');
    }
    render() {
      const { auth } = this.props;
      if(!auth.uid) return <Redirect to='/signin' />
  return (
    form....
  )
}
}

const mapStateToProps = (state) => {
  return {
    auth: state.firebase.auth
  }
}

const mapDispatchToProps = (dispatch) => {
  return {
    createUser: (user) => dispatch(createUser(user))
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(CreateUser);
...